MATLAB:在给定范围内选择所有数组EXCEPT

Cap*_*rog 3 arrays matlab matrix matrix-indexing

我想对不属于某个范围的数组内容执行指标.

例如,我有一个包含1000行和2列的数组.我想对一列中的所有元素(比如列#2)执行mean()计算,这些元素不属于行50-150,250-300,400-700和900-950.

因此,应该基于行1-49,151-249,301-399,701-899和951-1000计算平均值.

任何想法如何去做?

编辑:我应该指出,每次运行程序时,包含的项目都会更改.因此,我不能仅仅对内含物进行硬编码; 他们需要根据排除情况制定出来.

Amr*_*mro 6

怎么样:

M = rand(1000,2);
idx = setdiff(1:size(M,1), [50:150, 250:300, 400:700, 900:950]);

MM = M(idx,:)
Run Code Online (Sandbox Code Playgroud)

现在将任何函数应用于过滤矩阵:

mean(MM,1)
Run Code Online (Sandbox Code Playgroud)