2013a 中的 Matlab Saveas 错误
Posted
技术标签:
【中文标题】2013a 中的 Matlab Saveas 错误【英文标题】:Matlab Saveas Error in 2013a 【发布时间】:2013-06-06 15:52:41 【问题描述】:我刚刚从 2012a 更新到 2013a,现在当我尝试使用与 2012a 相同的代码将图形保存为 jpg 时遇到了一个奇怪的错误。代码如下:
h=figure;
plot(JDAYs(timesteps),y1(timesteps),JDAYs(timesteps),y2(timesteps));
legend('W2 output','RBF results')
xlabel('JDAY')
ylabel('T deg C')
title( strcat('Node ', num2str(node),' - T S',num2str(Seg),' L',num2str(Lay),', RMSE=', num2str(RMSE(node,1))))
name = strcat('time series 18 to 1000\Node ', num2str(node),' - T S',num2str(Seg),' L',num2str(Lay));
saveas(h,name, 'jpg');
close(h)
我收到此错误,即使我在当前目录中有一个名为“时间序列 18 到 1000”的文件夹:
Error using saveas (line 115)
Invalid or missing path: time series 18 to 1000\Node1 - T S2 L3
然后我尝试保存在当前文件夹中:
name = strcat('Node ', num2str(node),' - T S',num2str(Seg),' L',num2str(Lay));
并得到这个错误:
Error using name (line 103)
Cannot create output file '.\Node1 - T S2 L3.jpg'
Error in print (line 209)
pj = name( pj );
Error in saveas (line 154)
print( h, name, ['-d' devi] )
此代码在 2012a 中有效,如果我手动保存(文件->另存为)它可以正常工作。
【问题讨论】:
【参考方案1】:这是我使用的代码(我创建了“时间序列 18 到 1000”文件夹),它可以在我的计算机上运行(matlab r2010a):
node = 1;
Seg = 2;
Lay = 3;
RMSE = @(x) x*4;
h=figure;
plot(rand(1,5));
legend('W2 output')
xlabel('JDAY')
ylabel('T deg C')
title( strcat('Node ', num2str(node),' - T S',num2str(Seg),' L',num2str(Lay),', RMSE=', num2str(RMSE(node))))
name = strcat('time series 18 to 1000\Node ', num2str(node),' - T S',num2str(Seg),' L',num2str(Lay),'.jpg')
saveas(h,name, 'jpg');
close(h)
【讨论】:
该文件夹确实存在。就像我上面说的,我也尝试将它保存到当前目录文件夹(删除“时间序列 18 到 1000\”),但仍然收到错误。 @Amy 对不起,我误解了。我会检查一下您的问题可能出在哪里。 @Amy 我创建了“时间序列 18 到 1000”文件夹,它与我在答案中发布的更新代码一起使用。 你在使用 Matlab 2013a 吗? @Amy 如前所述,R2010a。以上是关于2013a 中的 Matlab Saveas 错误的主要内容,如果未能解决你的问题,请参考以下文章
查看文档时,Mac OS 10.8.3 上的 MATLAB r2013a 崩溃
Matlab 中的 Visual Studio 2012 编译器更新