用于保存的matlab迭代文件名

beg*_*inh 3 string file-io matlab filenames save

关于matlab的这个问题:我正在运行循环并且每次迭代都会生成一组新数据,我希望每次都将它保存在一个新文件中.我还通过更改名称来覆盖旧文件.看起来像这样:

name_each_iter = strrep(some_source,'.string.mat','string_new.(j).mat')
Run Code Online (Sandbox Code Playgroud)

而我在这里苦苦挣扎的是迭代,以便我获取文件:... string_new.1.mat ... string_new.2.mat等.

我尝试使用()[] {}以及'string_new.'j'.mat'的各种组合(这给出了语法错误)

怎么做到呢?

kit*_*tte 6

字符串只是字符的向量.因此,如果您想迭代地创建文件名,那么这是一个如何执行此操作的示例:

for j = 1:10,
   filename = ['string_new.' num2str(j) '.mat'];
   disp(filename)
end
Run Code Online (Sandbox Code Playgroud)

上面的代码将创建以下输出:

string_new.1.mat
string_new.2.mat
string_new.3.mat
string_new.4.mat
string_new.5.mat
string_new.6.mat
string_new.7.mat
string_new.8.mat
string_new.9.mat
string_new.10.mat
Run Code Online (Sandbox Code Playgroud)


Amr*_*mro 5

您还可以使用NUM2STR提前生成所有文件名:

>> filenames = cellstr(num2str((1:10)','string_new.%02d.mat'))

filenames = 
    'string_new.01.mat'
    'string_new.02.mat'
    'string_new.03.mat'
    'string_new.04.mat'
    'string_new.05.mat'
    'string_new.06.mat'
    'string_new.07.mat'
    'string_new.08.mat'
    'string_new.09.mat'
    'string_new.10.mat'
Run Code Online (Sandbox Code Playgroud)

现在,像filenames{i}每次迭代一样访问单元格数组内容