aeobea 发表于 2006-11-23 17:07

如何在程序中定义个动态的文件名称,以便动态存储数据

%已有up,ul,ut三个矩阵变量
for i=1: 24
    p(:,1)=up(:,i);
    p(:,2)=ul(:,i);
    p(:,3)=ut(:,i);
    %这里我想将数据重新组织存储到多个文件中
   filename=['t',int2str(i)];
   save filename p;%??这里表达上述这种意思,但语法肯定是错误的
end

如上所示,如何能在matlab中定义动态的变量名称呢?

tianj1234 发表于 2006-11-23 17:13

用eval语句应该可以

happy 发表于 2006-11-23 17:28

请说明你所说的“动态的变量名称”值得是哪个?

aeobea 发表于 2006-11-23 18:22

谢谢各位的回答,我将程序按照各位的意见更改了一下,如下:
up=;
ul=;
ut=;
for i=1: 3
    pp(:,1)=up(:,i);
    pp(:,2)=ul(:,i);
    pp(:,3)=ut(:,i);
    tstr = ['t', int2str(i),'=pp'];
    eval(tstr);
end
    save pjm_0102_t.mat t1 t2 t3;%这样可以将t1-t3存入文件

但如何使用 for 循环来将最后一句改掉呢?
不要程序将t1 t2 t3写死,而是根据i来自动生成?

谢谢。

Tla 发表于 2006-11-23 18:41

看看是不是这个样子?

up=;
ul=;
ut=;
for i=1: 3
    pp(:,1)=up(:,i);
    pp(:,2)=ul(:,i);
    pp(:,3)=ut(:,i);
    %   pp已经是数据文件,就不用再eval了
    save(['文件' num2str(i) '.txt'],'pp','-ascii');
end

zhong124 发表于 2013-3-2 13:39

本帖最后由 zhong124 于 2013-3-2 13:46 编辑

Tla 发表于 2006-11-23 18:41 http://www.chinavib.com/static/image/common/back.gif
看看是不是这个样子?



页: [1]
查看完整版本: 如何在程序中定义个动态的文件名称,以便动态存储数据