变量是32x8x40940
双矩阵。这是我想要完成的一个例子:
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 :(得分:1)
作为一般规则,您应该避免使用eval
来获得无数的安全性,可读性和一般良好的编码原因。
备注here,here和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
不会失败。
y[loopcounter]=plot(squeeze(variableName(1,1,:)))
saveas(y[loopcounter],strcat('file',str(loopcounter),'.extension_format'))