声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1873|回复: 5

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

[复制链接]
发表于 2006-11-23 17:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
%已有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中定义动态的变量名称呢?
回复
分享到:

使用道具 举报

发表于 2006-11-23 17:13 | 显示全部楼层
用eval语句应该可以
发表于 2006-11-23 17:28 | 显示全部楼层
请说明你所说的“动态的变量名称”值得是哪个?
 楼主| 发表于 2006-11-23 18:22 | 显示全部楼层
谢谢各位的回答,我将程序按照各位的意见更改了一下,如下:
up=[1 1 1; 1 1 1; 1 1 1];
ul=[3 3 3; 3 3 3; 4 4 4];
ut=[5 5 5; 6 6 6; 2 2 2];
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来自动生成?

谢谢。
发表于 2006-11-23 18:41 | 显示全部楼层
看看是不是这个样子?

  1. up=[1 1 1; 1 1 1; 1 1 1];
  2. ul=[3 3 3; 3 3 3; 4 4 4];
  3. ut=[5 5 5; 6 6 6; 2 2 2];
  4. for i=1: 3
  5.     pp(:,1)=up(:,i);
  6.     pp(:,2)=ul(:,i);
  7.     pp(:,3)=ut(:,i);
  8.     %   pp已经是数据文件,就不用再eval了
  9.     save(['文件' num2str(i) '.txt'],'pp','-ascii');
  10. end
复制代码
发表于 2013-3-2 13:39 | 显示全部楼层
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-17 17:34 , Processed in 0.096088 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表