How to scan a matrix and execute specific commands depending on value.

조회 수: 1 (최근 30일)
Let's say I had a 5x2 matrix:
0 1
1 0
1 1
1 0
0 1
I want to scan down the first column, and do the following:
  • If the value is 0, I want to assign a 0 value to a new 5x1 matrix.
  • If the value is >0, I want to move up a row and look at the value in the 2nd column.
  • If the value in this 2nd column is 0, then assign a 0 to the new 5x1 matrix.
  • If the value in this 2nd column is >0, then assign a 1 to the new 5x1 matrix.
  • Continue through the rest of the matrix.
So, the output should look like this:
0
1
0
1
0
Many thanks!
  댓글 수: 2
Walter Roberson
Walter Roberson 2022년 8월 18일
What if the value is > 0 in the first column of the first line? "move up a row" would be moving to before the matrix.
Laura Steel
Laura Steel 2022년 8월 18일
Hi, thanks for taking a look! The first value of the first column will always = 0, so this should not be a problem.

댓글을 달려면 로그인하십시오.

채택된 답변

Walter Roberson
Walter Roberson 2022년 8월 18일
편집: Walter Roberson 2022년 8월 18일
matrix = [0 1
1 0
1 1
1 0
0 1]
matrix = 5×2
0 1 1 0 1 1 1 0 0 1
if matrix(1,1)
output1 = nan; %his case is not defined, requires referring to row above first
else
output1 = 0;
end
output2end = matrix(2:end,1) & matrix(1:end-1,2)
output2end = 4×1 logical array
1 0 1 0
output = [output1; output2end]
output = 5×1
0 1 0 1 0

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by