我有带元素的方阵,可以取{-1, 0, 1}
的值。我知道每行只有1个元素等于-1(第一行除外,其中只有非负元素)。
设n为矩阵的大小。
所以,我想从i
中的每个索引[2, n]
分配i
中第-1行的位置。
如何在不使用for
或while
循环的情况下执行此操作?
答案 0 :(得分:2)
t = matrix==-1;
[~, pos] = max(t,[],2); %// position of first -1 within each row.
pos = pos .* any(t,2); %// give 0 for rows that don't contain any -1 value
pos(k)
给出行-1
中的{第一个] k
值的位置,或0
,如果该值中没有任何-1
值行。
示例:
matrix =
1 0 0 1
0 1 -1 1
0 1 1 -1
0 0 1 -1
给出
pos =
0
3
4
4