找回密码
 注册
Simdroid-非首页
查看: 184|回复: 10

如何保存数据为指定变量名-关于save/eval命令

[复制链接]
发表于 2008-12-16 22:40:37 | 显示全部楼层 |阅读模式 来自 山东青岛
本帖最后由 messenger 于 2010-4-18 00:45 编辑

我希望保存的mat文件的名称和存在其中的数据得名称相同
我用的save命令,但是有点实现不了,请教大家如何在给一个变量赋值后提取变量名
这样就可以将save(savefile,'x')里的'x'用变量名替代
因为是批处理数据,变量名是变化的,
x=a.data(:,i);
save(savefile,'x');
savefile里包含了filename.mat,但是filename是变化的,我希望的
能实现filename=a.data(:,i);
save(savefile,filename);但这两行是错误的

希望大家给与帮助,谢谢!
发表于 2008-12-16 23:19:53 | 显示全部楼层 来自 浙江杭州
Simdroid开发平台
做个循环
比如

  1. firstname='filen';
  2. for n=1:5
  3.     a=rand;
  4.     lastname=num2str(n);
  5.     filename=[firstname lastname];
  6.     save(filename,'a');
  7. end
复制代码

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2008-12-17 20:12:33 | 显示全部楼层 来自 山东青岛

回复 2# feynmand 的帖子

首先谢谢您的回答!
但可能是我的问题没有说清楚,我的问题里filename是变化的,您的回答里无论对于哪个保存下来的文件,当load时在workspace里显示得都是a,我是想实现变化的保存下来的文件名称对应变量名称,不知这次我有没有表达清楚?还是谢谢您!
回复 不支持

使用道具 举报

发表于 2008-12-17 21:00:01 | 显示全部楼层 来自 黑龙江哈尔滨
首先感谢楼主解答,其实在楼主的解答上稍加改动就能存变量了

firstname='filen';
for n=1:5
  eval(['a' num2str(n) '= magic(n)']);
   file= ['a' num2str(n) ];

   lastname=num2str(n);
    filename=[firstname lastname];
    save(filename,file);
end

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2008-12-17 21:01:43 | 显示全部楼层 来自 黑龙江哈尔滨
但有个问题请教,上面程序用了eval,我加了分号,为什么还再matlab执行时候现实结果,我想不显示 怎么办?
回复 不支持

使用道具 举报

发表于 2008-12-17 21:19:45 | 显示全部楼层 来自 天津河西区
试试   
eval(['a' num2str(n) '= magic(n);'])
回复 不支持

使用道具 举报

发表于 2008-12-17 21:22:52 | 显示全部楼层 来自 黑龙江哈尔滨
问题解决了,谢谢楼上的
回复 不支持

使用道具 举报

发表于 2008-12-17 21:25:53 | 显示全部楼层 来自 天津河西区
help genvarname

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2008-12-17 23:08:19 | 显示全部楼层 来自 新疆乌鲁木齐
在MATLAB环境中,这种保存方法个人认为太笨,弄上一堆mat看着头晕不说,还很不好管理与使用。在save的help中有一个存储为结构数组的例子,我感觉更加方便——最后只调用一个mat,所有需要的变量都在里边。

  1. s1.a = 12.7;  s1.b = {'abc', [4 5; 6 7]};  s1.c = 'Hello!';
  2. save newstruct.mat -struct s1;
  3. clear
复制代码

[ 本帖最后由 bainhome 于 2008-12-17 23:10 编辑 ]

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2008-12-19 20:09:25 | 显示全部楼层 来自 山东青岛

回复 9# bainhome 的帖子

因为有很多试验数据,之后还要引用作分析
回复 不支持

使用道具 举报

 楼主| 发表于 2008-12-19 20:59:23 | 显示全部楼层 来自 山东青岛
弄好了,谢谢各位!真的非常非常感谢!:lol
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-5-4 23:38 , Processed in 0.060245 second(s), 21 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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