1

行が測定値の平均を示し、列が人々のグループを表すベクトルであるとします。

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 と 2 の間の差が有意であり、3 回目の測定ではグループ 1 と 3 の間、およびグループ 2 と 3 の間の差が有意であることを示します。

4

1 に答える 1