kukusuiyi 发表于 2007-8-20 16:57

字符串和矩阵交替保存为txt文件的问题

搜索了一下本论坛和其他论坛,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 编辑 ]

eight 发表于 2007-8-20 21:08

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

你的意思是保存为单个txt文件,且里面的内容是如下这样?a
123
b
1 2 3
4 5 6

kukusuiyi 发表于 2007-8-21 12:13

对的哈,就是程序中需要用户输入一些参数,比如上面说的a b,为了可以容易检查这些数据,就想保存成单独的txt文件,为了比较容易区分,就用字符串ab 等来标识。

eight 发表于 2007-8-21 17:53

原帖由 kukusuiyi 于 2007-8-21 12:13 发表 http://www.chinavib.com/forum/images/common/back.gif
对的哈,就是程序中需要用户输入一些参数,比如上面说的a b,为了可以容易检查这些数据,就想保存成单独的txt文件,为了比较容易区分,就用字符串ab 等来标识。

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

a1=123;
a2=;
fid = fopen('myfile.txt', 'wt');
for i=1:2
    fprintf(fid, '%s %s\n', ['a',int2str(i)], mat2str(eval(['a',int2str(i)])));
end
fclose(fid);

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

a1=123;
a2=;
fid = fopen('myfile.txt', 'wt');
for i=1:2
    fprintf(fid, '%s: \n', ['a',int2str(i)]);
    b = eval(['a',int2str(i)]);
    fprintf(fid, , b');
end
fclose(fid);

kukusuiyi 发表于 2007-8-22 10:21

谢谢eight!!
整了好久都没结果!
太谢谢了啊!

[ 本帖最后由 eight 于 2007-8-22 19:12 编辑 ]

donkeyxu 发表于 2007-8-25 09:53

直接用save不行吗
例如工作窗口现有a,b,c等变量,分别可表矩阵,cell,字符等等。
用:
    save('filename','a','b','c');
就可以了。
调用就直接load:
load('filename');
此时工作窗口里就多了a,b,c和其代表的值.

eight 发表于 2007-8-29 19:12

原帖由 donkeyxu 于 2007-8-25 09:53 发表 http://www.chinavib.com/forum/images/common/back.gif
直接用save不行吗
例如工作窗口现有a,b,c等变量,分别可表矩阵,cell,字符等等。
用:
    save('filename','a','b','c');
就可以了。
调用就直接load:
load('filename');
此时工作窗口里就多了a,b,c和其 ...

当然可以,这是保存为 mat 格式的文件时候最简便的方法,可是楼主要求保存为 txt 格式的文件,所以用 save 不行
页: [1]
查看完整版本: 字符串和矩阵交替保存为txt文件的问题