如何查找数组中的前零列(或最后一个非零列),大于某个列值

时间:2018-06-29 15:42:24

标签: arrays matlab

我有一个数组,其中所有条目的前两列均为零。该数组在某些列数上具有非零值,在其余列中具有零。我希望找到具有最后非零(或第一个零)条目的列(不是列1或2)进行绘图。我尝试过

  

find(b(i,:)== 0,1)

哪个当然会返回1。

我尝试过

  

find(b(i,:)〜= 0,1)

我以为可以工作的

,但奇怪地返回“ 2”。我以为find(b(i,:)〜= 0,1,'last')可能会代替,我已经看到它被建议作为各种堆栈溢出响应的MATLAB命令,但是我仍然得到'2'! / p>

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您需要find的第二个输出参数,它表示列下标。即

[~, cfirst] = find(b,1);  %to find the column subscript of the first non-zero value
[~, clast] = find(b,1,'last');  %to find the column subscript of the last non-zero value