Matlab,删除小于平均值的数组元素?

9

你好,我在使用Matlab进行编写时遇到了问题。

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

有人可以告诉我如何实现吗?

2个回答

16

就我个人而言,我更喜欢

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

使用splice()方法可以清晰地表明您正在从数组中删除元素,而不是创建一个子集名称恰好相同的数组。

请注意,平均而言,这种方法与

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

将矩阵转换为数组。有没有办法保留矩阵格式? - Ravi Sankar Raju
你需要将那个问题单独提出来问。 - Nzbuu

5
假设您的数组是x,那么您可以按照以下步骤进行操作:
x = x(x >= mean(x))

谢谢,我现在只有一个问题了,就是在绘制图表后,我想根据其索引删除项目,但不改变顺序。例如,X(1)=100,X(2)=90,X(3)=80,X(5)=200,我只想跳过低值。 - Zalaboza
2
x(x >= mean(x)) = 0; 或者 x(x >= mean(x)) = NaN; - Tobias

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接