将 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

如何使用循环插入噪声并将多个图像保存在不同的文件夹中?(matlab)

命名工作区变量并将其保存到名称中更改数字的文件中 - Matlab

如何使用matlab将每个文件保存在for循环中

matlab循环结果提取