如何在Matlab中保存循环中的文件?

时间:2013-06-11 13:47:50

标签: matlab for-loop save geotiff

我有一些geotif文件,我正在尝试用它们创建一个马赛克。我试图将图像放在一起排在第一行,然后尝试连接列并拥有最终的马赛克。我想让输出文件包含循环的保存号(outimage1,outimage2,..)。我想知道如何使用循环编号的顺序引入输出文件。

如果有人帮助我在下面的代码中找到我的错误,我会很高兴。

 close all;
 clear all;
 clc;

 path = 'E:\MATLAB\...\tifs\';
 path2 = 'E:\MATLAB\...\tifs\out\';

 matfiles = dir(fullfile('E:', 'MATLAB',...,'tifs','*.tif'));

 files = {matfiles.name};
 lf=length(files);

 image_row = [];


 for L=1:11
     for k=1:14:lf
          fname = matfiles(k).name;
          fullname = horzcat (path,fname);
          infile = imread (fullname);
          image_row= [image_row,infile];
          [~, ~, ext] = fileparts(fname);
          outimage = fullfile( path2, sprintf('outimage%d%s', L, ext) );
          imwrite(image_row,outimage);
     end

 end

您的助手非常感谢。

1 个答案:

答案 0 :(得分:1)

我不熟悉matlab语法k. format(fname) 如果你想在Matlab中进行字符串格式化,请阅读this first

您的问题的解决方案可能是

 outimage = fullfile( path2, sprintf('outimage_%03d_%s', k, fname ) );

修改
comment by OP之后,获取文件格式(tif):

 [~, ~, ext] = fileparts(fname);
 outimage = fullfile( path2, sprintf('outimage%d.%s',ext) );