Sum if conditions are satisfied across arrays

6 views (last 30 days)
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.

Sign in to comment.

Accepted Answer

Matt J
Matt J on 14 Feb 2018
Edited: Matt J on 14 Feb 2018
result = sum(diff(array,1,1)==-1 ,1)
Abhishek Varghese
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:
To receive credit for the answer! Cheers -Abhishek.

Sign in to comment.

More Answers (0)


Find more on Matrices and Arrays in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!