私は2つのマトリックスのためにこのようなコードを書きたい:xのインデックスが同じyの各グループの数値の平均値を調べるには、どうすればよいですか?
x=[1 1 1 2 2 3 3 3 3]';
y=[11 21 31 24 32 33 13 37 3]';
どのように私はXで同じインデックスを持つyの数字の各グループの平均値を見つけることができますか?
私のアルゴリズムは次のように見ることができます:ここ
If x(1)=x(2) counter1=1 sum1=y(1)+y(2)
x(2)=x(3) counter1=2 sum1=sum+y(3) Define newx1=x(1) newy1=sum1/counter1
x(3)<>x(4)
x(4)=x(5) counter2=1 sum2=y(4)+y(3) Define newx2=x(4) newy2=sum2/counter2
x(5)<>x(6)
x(6)=x(7) counter3=1 sum3=y(6)+y(7)
x(7)=x(8) counter3=2 sum3=sum+y(8)
x(8)=x(9) counter3=3 sum3=sum+y(9) Define newx1=x(6) newy3=sum3/counter3
私の問題は、ループ内の3つ以上のカウンタを使用しています。私は任意の助けのためにgreatfullであるか、または助言するだろう
動作しませんでしたs=1:8
for k=1:9
if x(k)=x(k+s);
else
s=s+1;
end
end
:(
これは意味をなさない。あなたがしようとしていることを明確にしてください。また、Matlabには高度に最適化された 'mean'関数があることは知っていますか? – PengOne
@PengOneあなたの答えに感謝します。はい、私はmatlabの平均関数を知っていますが、私は何とか変更する可能性のある自分の関数を作成する必要があります。だから私がしたいのは、xから同じ行列とynew = [(11 + 21 + 31)/ 3(24 + 32)/ 2(33)のうちの1つだけを得る別の行列xnew = [1 2 3] + 13 + 37 + 3)/ 4]私はよく説明できますか? – user1018331