【问题标题】:Matlab, remove elements from array which are less than average?Matlab,从数组中删除小于平均值的元素?
【发布时间】:2012-01-09 07:42:58
【问题描述】:

您好,我在使用 Matlab 编写此内容时遇到问题。所以

Situation : 数组包含 (100, 90, 80, 4, 2, 200) 例如。我想计算这些数字的平均值,然后只保留等于或大于平均值的数字。

谁能告诉我怎么做?

【问题讨论】:

    标签: matlab average


    【解决方案1】:

    个人比较喜欢

    x(x < mean(x)) = [];
    

    因为它清楚地表明您正在从数组中删除元素,而不是创建一个包含恰好具有相同名称的元素子集的数组。

    请注意,平均而言,这和之间应该没有性能差异

    x = x(x >= mean(x));
    

    【讨论】:

    • 这样做会将矩阵转换为数组。有没有办法可以保留矩阵格式?
    • 您需要将其作为一个单独的问题提出。
    【解决方案2】:

    假设你的数组是x,那么你可以这样做:

    x = x(x >= mean(x))
    

    【讨论】:

    • 谢谢,我现在只有一个问题,在那之后我用它的索引来绘制它。有没有办法在不更改顺序的情况下删除项目?例如 X(1)=100 X(2)90 X(3)80 X(5)200 并跳过低值
    • x(x >= mean(x)) = 0;或 x(x >= mean(x)) = NaN;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-29
    • 1970-01-01
    • 2016-10-26
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    相关资源
    最近更新 更多