2

関数のパラメーターを変更してからループでプロットしたいのですが、問題があります。問題は、プロットごとにラベルと異なる色が必要なことです

何かのようなもの:

hold on

for n = N

for t = Time_inv

    error = func(n, t);
    error_array_2(i) = error;
    i = i + 1;

end
    plot (Time_inv, error_array_2);
    i = 1;
end

私は Matlab を初めて使用しますが、他の言語の経験はあります

4

2 に答える 2

1

1つのプロットに複数の線がある場合はhold all凡例を使用します。

figure
hold all
plot(rand(1,10))
plot(rand(1,10))
plot(rand(1,10))
legend('label 1', 'label 2', 'label 3')

1つの図に複数のプロットがある場合は、サブプロットを使用します。

figure
subplot(1,2,1)
plot(rand(1,10))
subplot(1,2,2)
plot(rand(1,10))

異なる図のプロットには、figureを使用します。

figure
plot(rand(1,10))
figure
plot(rand(1,10))
于 2013-02-22T13:43:26.717 に答える
0

グラフごとに異なる色とラベルを使用するには、カラーマップとラベルのセル配列を作成できます。

h = zeros(1, length(N))
name = cell(1, length(N))

cm = hsv(length(N));
for n = N
    name{n} = ['condition ' num2str(n)];
    i = 1
    for t = Time_inv
        error = func(n, t);
        error_array_2(i) = error;
        i = i + 1;
    end
    h(n) = plot (Time_inv, error_array_2, 'color', cm(n,:));
    hold on    
end

legend(h, name);

あなたはmatlabを初めて使用することを指摘しているので、i関数は一般に行列で機能するため、イテレータはおそらく必要ないことを述べておきます。したがって、スクリプトを短縮することができます(抜粋)。

for n = N
    ...
    error_array_2 = func(n, Time_inv);
    ... 
end
于 2013-02-22T14:12:39.597 に答える