2017-06-19 43 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是目前的數字是在MATLAB開放。

就你而言,一旦你寫了一個循環,你可以在使用saveas命令之前將它們分配給一個數組或其他數據結構。您也可以在櫃檯附加到文件名(請務必將整數轉換爲字符串,這樣strcat不會失敗。你知道如何for循環寫

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