2017-06-19 41 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'))