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

问题描述 投票:0回答:1

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

找到(B(1,:)== 0,1)

当然返回1。

我试过了

找到(B(1,:)〜= 0,1)

我觉得它会起作用,但奇怪地回归'2'。我认为find(b(i,:)〜= 0,1,'last')可能会起作用,我已经看到它被建议作为各种Stack Overflow响应的MATLAB命令,但是我仍然得到'2'!

任何帮助将非常感激。

arrays matlab
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.