【问题标题】:find significant values between groups differences找出组间差异的显着值
【发布时间】:2013-10-04 09:14:59
【问题描述】:

假设 I 是一个向量,其中行表示测量值的平均值,列表示一组人。

Data = [1.8,1.4, 1.5;
60, 70, 80;
20, 40, 5];

假设我有另一个包含测量误差的向量

Error = [0.2, 0.1, 0.4;
20, 30, 10;
10,5,2];

我想为一组的每次测量选择显示显着差异的其他组。

例如

    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,2)-Error(i,2)) )

      selectedpar(k,1:3) = [i ,1, 2];

      k = k+1;
    end

    if ((Data(i,1)-Error(i,1)) > (Data(i,3)+Error(i,3)) || (Data(i,1)+Error(i,1)) < (Data(i,3)-Error(i,3)))

      selectedpar(k,1:3) = [i , 1, 3];

      k = k+1;
    end

    if ((Data(i,2)-Error(i,2)) > (Data(i,3)+Error(i,3)) || (Data(i,2)+Error(i,2)) < (Data(i,3)-Error(i,3)))

      selectedpar(k,1:3) = [i , 2, 3];

      k = k+1;
    end

end

我的问题是我事先不知道我应该使用的if条件的数量(组号不固定)... 有没有办法用通用解决方案解决这个问题? 此示例中的结果将是

selectedpar = [1    1   2
3   1   3
3   2   3]

表明对于第 1 次测量,第 1 组和第 2 组之间的差异是显着的,对于第 3 次测量,第 1 组和第 3 组之间以及第 2 组和第 3 组之间的差异是显着的。

【问题讨论】:

  • 你真的需要那种格式的结果吗?例如,生成索引为 (group,group,measurement) 的 3D 数组会很容易
  • 你只做一个方向的比较。例如,(Data(i,1)-Error(i,1)) &gt; (Data(i,2)+Error(i,2))。这是故意的吗?你不应该检查(Data(i,1)+Error(i,1)) &gt; (Data(i,2)-Error(i,2))吗?
  • 好吧...如果第一个条件为真,那么第二个条件应该始终为真,所以我会忽略它...关于格式...我更喜欢我建议的那个,因为它简化了我的生活:) ,但是是的,一个 3D 数组就可以了
  • 对不起,我的意思是(Data(i,1)+Error(i,1)) &lt; (Data(i,2)-Error(i,2))
  • 是的,这是真的!您是否知道如何修改 Mohsen 提供的解决方案以添加此条件?谢谢

标签: matlab


【解决方案1】:

你可以使用bsxfun

DM = Data-Error;
DP = Data+Error;
selectedpar = [];
for k=1:size(Data,1)
   [I,J]=find(tril(bsxfun(@gt, DM(k,:), DP(k,:).')));
   selectedpar = [selectedpar ; k+zeros(size(I)), J, I];  %#ok<AGROW>
end

您可能可以通过在 DP 上应用 permute 来删除 for 循环,但代码可读性不强。

【讨论】:

  • 非常感谢!如何添加 Luis 记得的其他条件? ((数据(i,1)-误差(i,1)) > (数据(i,2)+误差(i,2))) || (Data(i,1)+Error(i,1))
  • 我可以添加那些其他行 [P,H]=find(triu(bsxfun(@gt, DM(k,:), DP(k,:).'))); selectedpar = [selectedpar ; k+zeros(大小(P)), H, P];
猜你喜欢
  • 2015-01-09
  • 2010-10-29
  • 2013-01-19
  • 2012-08-30
  • 2022-11-10
  • 1970-01-01
  • 2021-11-10
  • 2012-12-20
  • 2016-07-21
相关资源
最近更新 更多