声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4074|回复: 6

[编程技巧] 字符串和矩阵交替保存为txt文件的问题

[复制链接]
发表于 2007-8-20 16:57 | 显示全部楼层 |阅读模式

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

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

x
搜索了一下本论坛和其他论坛,txt读取的资料很丰富,但是对如何写操作却没什么资料,还不清楚,
问题是:现在我有几十个变量,分别是维数不同的矩阵,要保存一个包含变量名(注释) 下面接着是变量值(不同维数的矩阵)的该如何操作呢?
例如:
a:
123
b:
1 2 3
4 5 6

尝试了一下save file.txt var1 a -ascii;其中var1=char(‘a:’)但是字符串部分显示的还是数字;
fprintf命令只有用类似与fid=fopen(‘file.txt’,'w+');
fprintf(fid,'%s\n',var1);
fprintf(fid,'%s\n',b);对于要保存为矩阵不知道该如何?
都不成功
请教各位达人该如何实现上述想法。

[ 本帖最后由 eight 于 2007-8-20 20:42 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-8-20 21:08 | 显示全部楼层
原帖由 kukusuiyi 于 2007-8-20 16:57 发表
搜索了一下本论坛和其他论坛,txt读取的资料很丰富,但是对如何写操作却没什么资料,还不清楚,
问题是:现在我有几十个变量,分别是维数不同的矩阵,要保存一个包含变量名(注释) 下面接着是变量值(不同维数 ...


你的意思是保存为单个txt文件,且里面的内容是如下这样?
  1. a
  2. 123
  3. b
  4. 1 2 3
  5. 4 5 6
复制代码
 楼主| 发表于 2007-8-21 12:13 | 显示全部楼层
对的哈,就是程序中需要用户输入一些参数,比如上面说的a b,为了可以容易检查这些数据,就想保存成单独的txt文件,为了比较容易区分,就用字符串a  b 等来标识。
发表于 2007-8-21 17:53 | 显示全部楼层
原帖由 kukusuiyi 于 2007-8-21 12:13 发表
对的哈,就是程序中需要用户输入一些参数,比如上面说的a b,为了可以容易检查这些数据,就想保存成单独的txt文件,为了比较容易区分,就用字符串a  b 等来标识。


如果写入的时候简单一点,则可以采用以下方式,不过读取的时候比较麻烦:

  1. a1=123;
  2. a2=[1 2 3;4 5 6];
  3. fid = fopen('myfile.txt', 'wt');
  4. for i=1:2
  5.     fprintf(fid, '%s %s\n', ['a',int2str(i)], mat2str(eval(['a',int2str(i)])));
  6. end
  7. fclose(fid);
复制代码

如果写入的时候复杂一点,而读取的时候简单一点,则:

  1. a1=123;
  2. a2=[1 2 3;4 5 6];
  3. fid = fopen('myfile.txt', 'wt');
  4. for i=1:2
  5.     fprintf(fid, '%s: \n', ['a',int2str(i)]);
  6.     b = eval(['a',int2str(i)]);
  7.     fprintf(fid, [repmat('%d ', 1, size(b,2)), '\n'], b');
  8. end
  9. fclose(fid);
复制代码

评分

1

查看全部评分

 楼主| 发表于 2007-8-22 10:21 | 显示全部楼层
谢谢eight!!
整了好久都没结果!
太谢谢了啊!

[ 本帖最后由 eight 于 2007-8-22 19:12 编辑 ]
发表于 2007-8-25 09:53 | 显示全部楼层
直接用save不行吗
例如工作窗口现有a,b,c等变量,分别可表矩阵,cell,字符等等。
用:
    save('filename','a','b','c');
就可以了。
调用就直接load:
load('filename');
此时工作窗口里就多了a,b,c和其代表的值.
发表于 2007-8-29 19:12 | 显示全部楼层
原帖由 donkeyxu 于 2007-8-25 09:53 发表
直接用save不行吗
例如工作窗口现有a,b,c等变量,分别可表矩阵,cell,字符等等。
用:
    save('filename','a','b','c');
就可以了。
调用就直接load:
load('filename');
此时工作窗口里就多了a,b,c和其 ...


当然可以,这是保存为 mat 格式的文件时候最简便的方法,可是楼主要求保存为 txt 格式的文件,所以用 save 不行
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-4 15:01 , Processed in 0.172485 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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