Sum if conditions are satisfied across arrays

2 次查看(过去 30 天)
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 个评论
Matt J
Matt J 2018-2-14
I have a binary 2D array that is m rows and n columns.
According to your diagram, n is the number of rows, not columns.

请先登录,再进行评论。

采纳的回答

Matt J
Matt J 2018-2-14
编辑:Matt J 2018-2-14
result = sum(diff(array,1,1)==-1 ,1)
  3 个评论
Abhishek Varghese
Abhishek Varghese 2018-2-14
编辑:Abhishek Varghese 2018-2-14
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.

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by