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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在数组中查找第一个零列(或最后一个非零列),大于某个列值相关的知识,希望对你有一定的参考价值。

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

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

当然返回1。

我试过了

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

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

任何帮助将非常感激。

答案

您需要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

以上是关于如何在数组中查找第一个零列(或最后一个非零列),大于某个列值的主要内容,如果未能解决你的问题,请参考以下文章

在 Pandas Dataframe 中获取具有非零列的前 11 行

使用花哨的索引从 Numpy 数组中查找和删除全零列

r 用R提取数字和非零列

Spark2 生存分析Survival regression

如何解决 prcomp.default():无法将常量/零列重新缩放为单位方差

在 QAbstractItemModel 中返​​回正数行和零列是不是可以?