2017-06-19 9 views
-2

変数は32x8x40940の複行列です。 ...MATLAB - 評価関数と多くのプロットの印刷

plot(squeeze(variableName(1,1,:))) 
plot(squeeze(variableName(1,2,:))) 
plot(squeeze(variableName(1,3,:))) 

...ループ

plot(squeeze(variableName(2,1,:))) 

に繰り返し私は保存すること以外

上記の手順を繰り返します。ここで私が達成したいものの例です。それらのすべてを生成するのではなくプロットを作成します。私はまた、私が持っている別のソフトウェアを使用してそれらを整理することができますので、イメージ形式(例えばpng)でそれらを欲しいです。

次のeval関数は私が与えた例でしたが、この場合、ドキュメントには例がありません。私はそれが自動的に私のディレクトリの特定の領域にプロットを保存するようにしたい。

eval([ 'print(''-dpng'', ''..\folder\another_Folder_', num2str(var), '.png'')' ]); 
% 'var' being iteration number within loop 

+0

あなたがループの書き方を知っているD?これがためで簡単に解ける問題ですループと組み込み関数Matlab saveas関数を使用しています。saveasの詳細:https://ch.mathworks.com/help/matlab/ref/saveas.html – user2137591

答えて

1

一般的に、セキュリティ、可読性、一般的な良いコーディング理由のために、evalを使用しないでください。 ノートherehere、そしてあなたがループした数字を保存したいと思う場合here

、MATLABでsaveas機能を使用することを検討してください。 helpから、

x = [2 4 7 2 4 5 2 5 1 4]; 
bar(x); 
saveas(gcf,'Barchart.png') 

gcfは、MathWorks社のMATLABで開かれている現在の数字です。

ループを作成したら、saveasコマンドを使用する前に、これらを配列などのデータ構造体に割り当てることができます。またstrcatが失敗しないように、整数を文字列に変換することを確認します(ファイル名にカウンターを追加することができます。

y[loopcounter]=plot(squeeze(variableName(1,1,:))) 
saveas(y[loopcounter],strcat('file',str(loopcounter),'.extension_format'))