0

Matlab / octaveは初めてですが、私はRでの作業に慣れています。したがって、私がやりたいことは次のとおりです。t.testの結果(y値)とt.testの差(x値)をプロットしたいと思います。非常に単純ですが、このデータはRで取得しますが、Matlabでプロットしたいと思います。ドットの色は、特定の列の値に基づいて変化する必要があります。つまり、基本的にはp値です。したがって、yx値とp値を持つ3つの列を取得しました。

私が欠けているのは、Rのifelse関数です。

かもね:

if [:,3]<0.05
     a='red';
elseif [:,3]<0.01
      a='green';
else 
   a=  black;
end

簡単なはずです。

4

2 に答える 2

0

あなたが何を求めているのか完全にはわかりませんが、正方行列で事前に数値を設定している場合は、imagesc

たとえば、を実行してみてくださいimagesc(rand(5));。この場合、rand(5)乱数の5x5行列を作成します。

お役に立てれば。

于 2012-11-28T00:11:19.140 に答える
0

と呼ばれる列[difference、result、p-value]を持つn行3列の配列があると仮定しますdatadata次に、次のようにプロットできます。

figure,hold on
idxK = data(:,3) > 0.05;
plot(data(idxK,1),data(idxK,2),'k')
idxG = data(:,3) < 0.01;
plot(data(idxG,1),data(idxG,2),'g')
plot(data(~(idxG|idxK),1),data(~(idxG|idxK),2),'r')

または、scatter

colorIdx = data(:,3)>0.05 + data(:,3)>0.01 + 1;
figure 
scatter(data(:,1),data(:,2),[],colorIdx)
colormap([0 1 0;1 0 0;0 0 0])
于 2012-11-28T00:36:41.467 に答える