【发布时间】:2013-10-04 02:08:15
【问题描述】:
我有一个矩阵 Data (n x m) 包含我的数据(组间平均值)。
n 是“感兴趣的参数”的数量(例如,身高、体重等)
m 是一群人(第 1 组、第 2 组等)
Error 是一个矩阵 (n x m),包含 Data 的标准差。
现在我只想选择重要的数据... 例如,如果 Data 和 Error 为 (2 x 3) (n = weight, high; m = group1 group2 group3)
Data = [4.12502560163850,4.51407107506505, 0.592984328663462;
5.29560931899642,5.26306387164821,0.525691390848871];
Error = [12.0003478648892, 12.4431683689277, 1.77834685956325;
10.3910686148834,17.1175178471769,1.33979258445445]
我只想选择重要的数据值。 IE (组 1 的高度 - 组 1 的标准差应 > 组 2 的高度 + 组 2 的标准差) 或者 (第 1 组的身高 - 第 1 组的身高标准差应该 > 第 3 组的身高 + 第 3 组的身高标准差)。
在这种特殊情况下我可以做到
k = 1;
for i = 1: size(Data,1)
if ((Data(i,1)-Error(i,1)) > (Data(i,2)+Error(i,2)) || (Data(i,1)-Error(i,1)) > (Data(i,3)+Error(i,3)))
selectedpar(k) = i;
k = k+1;
end
我的麻烦是我事先不知道 Data 的维度,我会让 if 条件动态...
谢谢
【问题讨论】:
-
使用
size( Data )获取n和m。 -
是的,我知道 size 命令 :)。也许我不清楚...问题是随着组的增加,我必须将一个值与其他 n 值进行比较...如果 a > b || a > c || a > d ....
-
使用
bsxfun和矢量化。 -
我编辑了这个问题...我希望现在更清楚了..
标签: matlab