将 Matlab 中循环的输出保存在不同的文件夹中
Posted
技术标签:
【中文标题】将 Matlab 中循环的输出保存在不同的文件夹中【英文标题】:saving outputs from a loop in Matlab in different folders 【发布时间】:2013-11-22 12:16:11 【问题描述】:我使用下面的代码将输出图像保存在与 m 文件相同的目录中。我正在尝试自动将输出图像保存在不同文件夹中,文件夹名称与“文件”名称相同。
clear all;
files = dir('*.dat');
for k = 1:length(files);
filename = files(k).name;
data1 = fopen(filename,'r');
data2 = textscan(data1, '%f%f','headerlines',1,'CollectOutput',1);
data = data2:,1;
x = data(:,1);
y = data(:,2);
plot(x, y);
[pathstr, name, ext] = fileparts(filename);
temp = ['fig', num2str(k), '.eps'];
print(gcf, '-depsc', temp);
fclose(data1);
end
任何帮助将不胜感激。
【问题讨论】:
按照你的方式,datFiles
变量中列出的所有文件都是本地目录中的文件,所以我不确定你在问什么
是的,datFiles(12.dat、15.dat、16.dat 等)在本地目录中。输出图像是同一本地目录中的 fig1、fig2、fig3 等。我想将 fig1 保存在子文件夹“12”中,将 fig2 保存在子文件夹“15”中,将 fig3 保存在子文件夹“16”中等等。
【参考方案1】:
您必须创建一个子文件夹(以您的文件名命名),然后在此文件夹中打印。
folderName = filename;
mkdir(folderName);
print( gcf , [folderName '/' filename] ); %or use `filesep` function to replace /
【讨论】:
我只是做了一些这样的修改,它对我来说很好:folderName = name; mkdir(文件夹名); print(gcf, '-depsc', [文件夹名 '/' temp]);以上是关于将 Matlab 中循环的输出保存在不同的文件夹中的主要内容,如果未能解决你的问题,请参考以下文章
如何在循环中的每次迭代中保存具有不同名称的文件? MATLAB
如何使用循环插入噪声并将多个图像保存在不同的文件夹中?(matlab)