# Sum if conditions are satisfied across arrays

6 views (last 30 days)
Abhishek Varghese on 14 Feb 2018
Edited: Abhishek Varghese on 14 Feb 2018
Hello everyone,
Kinda stuck. Scenario is:
I have a binary 2D array that is n rows and m columns.
I want to count how many times an element went from being a '1' in one row, to a '0' in the next row, and store it as a vector.
I have updated an illustration to help.
Would really appreciate an efficient and simple solution, cheers.
##### 2 CommentsShowHide 1 older comment
Abhishek Varghese on 14 Feb 2018
That's right. Edited it now. Thanks

Matt J on 14 Feb 2018
Edited: Matt J on 14 Feb 2018
result = sum(diff(array,1,1)==-1 ,1)
Abhishek Varghese on 14 Feb 2018
Edited: Abhishek Varghese on 14 Feb 2018
Related Question:
Hey Matt, still currently optimising my code. Would love further help.
Considering that I have the adjacency matrix:
adj = [0 1 1 1
1 0 0 1
1 0 0 1
1 1 1 0];
and a binary matrix:
array = randi([0 1],4,10)
where the columns are each node in the network, and the rows for the state of the network at each time step. To clarify, if node 1 is '1' at time step 2, it would be like
array(2,1) = 1
What would I do, to create a vector of values that satisfied the same condition as my initial question, and also satisfy the condition of not having any infected neighbours in the same time step??
EDIT: An infection is considered a 1, no infection a 0
EDIT2: I have decided that perhaps its best to create another question. Please find the question here: