【问题标题】:How to remove specific elements of a matrix?如何删除矩阵的特定元素?
【发布时间】:2014-10-10 13:02:23
【问题描述】:

我在工作中度过了糟糕的一天。我有一个非常简单的问题。

我有 2x100 矩阵,这样

[1 2 3 4 5  6 -2 -3 ....

 2 4 5 3 2 -4  3  3 ...]

我想做的是检查矩阵的第一行并删除所有大于2的数字并删除row2中的相应条目。因此,例如,如果只有 1 个元素而不是大写,我们的矩阵将变为 2x99 矩阵。

【问题讨论】:

    标签: matlab math matrix


    【解决方案1】:

    你应该使用逻辑索引:

    idxToKeep   = yourMat(1, :) <= 2;
    
    newMat      = yourMat(:, idxToKeep);
    

    或者如果您不想创建新矩阵:

    yourMat     = yourMat(:, idxToKeep);
    

    或全部在一条线中:

    yourMat     = yourMat(:, yourMat(1, :) <= 2);
    

    【讨论】:

    • @Dan 我同意,如果这是我自己的代码,我会这样做。但是,我认为这对于 TS 来说更容易理解。我会添加它...
    • 我将再添加一个以供参考:a(:,a(1,:)&lt;=0.2) = []; 也可以。万一有人想知道;不,它并不快,我推荐尼克的解决方案之一。 =)
    • @RobertP。我想你想要&gt; 2?而且它确实更慢:stackoverflow.com/questions/12421345/…
    • @RobertP。哇...这只是丑陋:P
    • @Dan:是的,当然,有点混乱,尼克:是的,它是=P
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 1970-01-01
    • 1970-01-01
    • 2014-09-21
    • 2012-02-13
    相关资源
    最近更新 更多