わかりやすくするために編集します。
p.valor 2x1000 と p.clase 1x1000 の 2 つの行列があります。p.valor は、-6 から 6 までの範囲の乱数で構成されます。p.clase には、200 個の 1:s、200 個の 2:s、および 600 個の 3:s が順番に含まれます。やりたくないことは
次の図のように、p.clase で決定されたクラスごとに異なる色/プロンプトを使用して p.valor を出力します。
私が最初にこれを書いたのは、p.valor のどの場所が p.clase の 1,2 それぞれの 3 がどこにあるかを調べるためです。
%identify the locations of all 1,2 respective 3 in p.clase
f1=find(p.clase==1);
f2=find(p.clase==2);
f3=find(p.clase==3);
%define vectors in p.valor representing the locations of 1,2,3 in p.clase
x1=p.valor(f1);
x2=p.valor(f2);
x3=p.valor(f3);
p.valor には 200 個の 1 (1) があるため、x1=(1:200) です。問題は、p.valor には 2 つの行があるため、それぞれの番号 one(1) (およびそれぞれ 2 と 3) が p.valor の 2 つの要素を表すことです。したがって、p.clase と x1 の行は 1 つしかありませんが、f1 のすべての場所と同じ列に要素を含める必要があります。
そのため、私が試したさまざまな代替手段はまだ成功していません。例:
plot(x1(:,1), x1(:,2),'ro')
hold on
plot(x2(:,1),x2(:,2),'k.')
hold on
plot(x3(:,1),x3(:,2),'b+')
と
y1=p.valor(201:400);
y2=p.valor(601:800);
y3=p.valor(1401:2000);
scatter(x1,y1,'k+')
hold on
scatter(x2,y1,'b.')
hold on
scatter(x3,y1,'ro')
と
y1=p.valor(201:400);
y2=p.valor(601:800);
y3=p.valor(1401:2000);
plot(x1,y1,'k+')
hold on
plot(x2,y2,'b.')
hold on
plot(x3,y3,'ro')
私の図には正しい軸がありますが、プロットされた値は提供された正しい図と一致しません(質問の上部を参照)。
したがって、私の質問は次のとおりです。プロットされた図の p.valor の 2 行目に値を含めるにはどうすればよいですか?
これがより明確になることを願っています!