【问题标题】:How to find the first zero column (or last non-zero column) in an array, greater than a certain column value如何在数组中找到大于某个列值的第一个零列(或最后一个非零列)
【发布时间】:2018-06-29 15:42:23
【问题描述】:

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

找到(b(i,:)==0,1)

当然返回 1。

我试过了

找到(b(i,:)~=0,1)

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

任何帮助将不胜感激。

【问题讨论】:

    标签: arrays matlab


    【解决方案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
    

    【讨论】:

    • 感谢您的回复!这适用于我当前遇到的问题。我想知道你能不能解释一下语法?另外,有没有办法找到大于某个列/行索引的第一个零列/行?
    • @21joanna12 语法在文档中进行了解释,请阅读。如果您不清楚,请告诉我。我在飞行自动取款机。是的,总有办法。
    猜你喜欢
    • 2018-04-26
    • 2015-03-26
    • 1970-01-01
    • 2016-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多