私は考えていた:
次の構造があるとします。
s(1).Xval=[1 2 3];
s(2).Xval=[1 2 3 4];
s(3).Xval=[1 2 3];
s(1).Yval=[1 2 3];
s(2).Yval=[4 3 2 1];
s(3).Yval=[3 2 1];
ここで、これら 3 つの線を 1 つのプロットにプロットしたいと思います。私はこれを行うことができます:
plot(s(1).Xval,s(1).Yval,s(2).Xval,s(2).Yval,s(3).Xval,s(3).Yval);
これが可能なのは、MATLAB が次の構文を使用してプロット関数の可変数の入力引数の機会を提供するためです。
plot(X1,Y1,...,Xn,Yn)
私の質問は: 事前定義された数のプロットなしでこの関数を呼び出す方法はありますか? この場合、3 つの線をプロットしましたが、何本の線をプロットしたいのか事前にわからない場合、この構文はまだ可能ですか?
Hold All
もちろん、For
ループを使用してこれを実行できることは承知しています。ただし、必要に応じてループを回避したいので、これを尋ねます。これに対するエレガントな解決策はありますか?それとも、ループを使用することに頼るべきですか?
編集:確かにインデックスにタイプミスがありました。s(1).Xval の代わりに s.Xval(1)