24小时热门版块排行榜    

CyRhmU.jpeg
南方科技大学公共卫生及应急管理学院2026级博士研究生招生报考通知(长期有效)
查看: 1439  |  回复: 16

dairenyihao

新虫 (小有名气)

[求助] 如何将矩阵的每一行保存成一个单独的txt

a=[
8        9        11.2        1        1
3        2        23.2        1        1
7        8        47.2        1        1
5        6        71.2        1        1
8        7        107.2        1        1
3        4        167.2        1        1
6        7        203.2        1        1
6        5        215.2        1        1
7        6        239.2        1        1
4        5        311.2        1        1
5        4        347.2        1        1
2        1        383.2        1        1
];
for i=1:12
b=a(i,1);
save('D:\dangeonsets\s02\run_small_b_c.txt',d,'-append','delimiter','')
end
我输入一个矩阵a,目的是想保存这个矩阵每一行的后三列为一个单独的txt文件,共12个txt文件,最后txt的文件是以每一行的前两列命名的
我该如何在save里面实现?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

baobiao007

木虫 (职业作家)

中国特色

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
dairenyihao: 金币+50 2013-11-10 08:41:33
一次性把要求讲清楚多好,就不用这么来回反复了
CODE:
clear;clc;

mymat=[
8        9        11.2        1        1
3        2        23.2        1        1
7        8        47.2        1        1
5        6        71.2        1        1
8        7        107.2        1        1
3        4        167.2        1        1
6        7        203.2        1        1
6        5        215.2        1        1
7        6        239.2        1        1
4        5        311.2        1        1
5        4        347.2        1        1
2        1        383.2        1        1
];

[nr,nc] = size(mymat);
for ii = 1:nr
    a = mymat(ii,1); b = mymat(ii,2);
    data = mymat(ii,end-2:end);
    filename =['run_small_',int2str(a),'_',int2str(b),'.txt'];
    fid = fopen(filename,'wt');
    fprintf(fid,'%6.2f %d %d\n',data);
    fclose(fid);
end

记得发币
我同意叔本华的观点,人们投身艺术和科学领域的强烈愿望之一就是逃离痛苦、残酷和枯燥无味的现实生活,逃离自己飘忽不定的七情六欲的桎梏。--爱因斯坦
12楼2013-11-09 17:51:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

baobiao007

木虫 (职业作家)

中国特色

【答案】应助回帖

感谢参与,应助指数 +1
我要金币
CODE:
clear;clc;

mymat=[
8        9        11.2        1        1
3        2        23.2        1        1
7        8        47.2        1        1
5        6        71.2        1        1
8        7        107.2        1        1
3        4        167.2        1        1
6        7        203.2        1        1
6        5        215.2        1        1
7        6        239.2        1        1
4        5        311.2        1        1
5        4        347.2        1        1
2        1        383.2        1        1
];

[nr,nc] = size(mymat);
for ii = 1:nr
    a = mymat(ii,1); b = mymat(ii,2);
    data = mymat(ii,end-2:end);
    filename =['f',int2str(a),int2str(b),'.txt'];
    save(filename,'data','-ascii');
end

我同意叔本华的观点,人们投身艺术和科学领域的强烈愿望之一就是逃离痛苦、残酷和枯燥无味的现实生活,逃离自己飘忽不定的七情六欲的桎梏。--爱因斯坦
2楼2013-11-09 13:37:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dairenyihao

新虫 (小有名气)

引用回帖:
2楼: Originally posted by baobiao007 at 2013-11-09 13:37:27
我要金币


clear;clc;

mymat=;

= size(mymat);
for ii = 1:nr
    a = mymat(ii,1); b = mymat(ii,2);
    data = mymat(ii,end-2:end);
    filename =;
    save(filename,'data','-ascii');
en ...

这个结果不是我想要的   首先保存的内容形式不是我想要的   其次是结果生成的文件名也不是我想要的
3楼2013-11-09 15:56:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

baobiao007

木虫 (职业作家)

中国特色

引用回帖:
3楼: Originally posted by dairenyihao at 2013-11-09 15:56:20
这个结果不是我想要的   首先保存的内容形式不是我想要的   其次是结果生成的文件名也不是我想要的...

文件名,我多加了个f,你把代码里那个f删除即可。 内容,数值是对的,无非表示成了小数。总之,你在这个代码的基础上稍微修改下应该就好了
我同意叔本华的观点,人们投身艺术和科学领域的强烈愿望之一就是逃离痛苦、残酷和枯燥无味的现实生活,逃离自己飘忽不定的七情六欲的桎梏。--爱因斯坦
4楼2013-11-09 16:10:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

363418323

铁虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
function savefile(a)




a_name = a(:,[1 2]);
a_data = a(:,[3 4 5]);

[nr,nc] = size(a);
for ii = 1:nr
    data =  a_data(ii,;
    filename =[int2str(a_name(ii,) '.txt'];
    save(filename,'data','-ascii');
   
end


记得给分,50分啊,我都帮你写好了,a就是你要转换的矩阵,只能5列,行无所谓。
调用方法:
savefile(a) %a = N*5的矩阵
thepursuitofhappiness
5楼2013-11-09 16:26:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

363418323

铁虫 (正式写手)

【答案】应助回帖

这个是: )跟笑脸的代码重复了,我去,说怎么这么多表情啊
thepursuitofhappiness
6楼2013-11-09 16:28:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dairenyihao

新虫 (小有名气)

引用回帖:
4楼: Originally posted by baobiao007 at 2013-11-09 16:10:02
文件名,我多加了个f,你把代码里那个f删除即可。 内容,数值是对的,无非表示成了小数。总之,你在这个代码的基础上稍微修改下应该就好了...

你这是科学计数法  而我要的是普通的表示方法
7楼2013-11-09 17:28:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dairenyihao

新虫 (小有名气)

引用回帖:
4楼: Originally posted by baobiao007 at 2013-11-09 16:10:02
文件名,我多加了个f,你把代码里那个f删除即可。 内容,数值是对的,无非表示成了小数。总之,你在这个代码的基础上稍微修改下应该就好了...

只要你能做到  我绝不食言  50个金币
8楼2013-11-09 17:28:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dairenyihao

新虫 (小有名气)

引用回帖:
5楼: Originally posted by 363418323 at 2013-11-09 16:26:58
function savefile(a)




a_name = a(:,);
a_data = a(:,);

= size(a);
for ii = 1:nr
    data =  a_data(ii,;
    filename =;
    save(filename,'data','-ascii');
   
end


记得给分, ...

我要的最终文件名是run_small_b_c.txt'(e.g. run1_small_8_9.txt)
9楼2013-11-09 17:31:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dairenyihao

新虫 (小有名气)

引用回帖:
5楼: Originally posted by 363418323 at 2013-11-09 16:26:58
function savefile(a)




a_name = a(:,);
a_data = a(:,);

= size(a);
for ii = 1:nr
    data =  a_data(ii,;
    filename =;
    save(filename,'data','-ascii');
   
end


记得给分, ...

并且结果不能以科学计数法呈现
10楼2013-11-09 17:32:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 dairenyihao 的主题更新
信息提示
请填处理意见