使用矩阵中的索引的工具

时间:2014-03-10 16:12:08

标签: matlab matrix indexing assign

我有带元素的方阵,可以取{-1, 0, 1}的值。我知道每行只有1个元素等于-1(第一行除外,其中只有非负元素)。

设n为矩阵的大小。 所以,我想从i中的每个索引[2, n]分配i中第-1行的位置。

如何在不使用forwhile循环的情况下执行此操作?

1 个答案:

答案 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