作者totemist (totem)
看板MATLAB
标题[请益] 3矩阵合并 并存成.txt档
时间Tue Nov 10 22:26:27 2015
如题,今天我有3笔data: a1, a2, a3
a1 的type 是 41x1 double 数字
a2 的type 是 41x1 double 数字
a3 的type 是 41x1 cell char
合并的想法是:
for cnt = 1 : length (a1)
phn_txt{cnt,1} = [a1(cnt)];
end
for cnt = 1 : length (a1)
phn_txt{cnt,2} = [a2(cnt)];
end
for cnt = 1 : length (a1)
phn_txt{cnt,3} = [a3(cnt)];
end
这个方法的确可以合并成 41x3 的 cell里
但是接下来要储存成.txt的步骤,参考网路上的范例:
[nrows, nclos] = size(phn_txt);
filename = 'phn.txt';
fid = fopen(filename, 'w');
for row = 1 : nrows
fprintf(fid, ' %d %d %s \n', phn_txt{row,:});
end
fclose(fid);
却无法成功,出现以下的error:
" Error using fprintf
Function is not defined for 'cell' inputs."
貌似是a3在合并时有出问题
因为我有另外测试只把a1 a2合并,就可以储存成.txt
不太清楚知道问题是甚麽
请各位大大指点解惑一番
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.114.28.223
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1447165590.A.D35.html
1F:推 sunev: 分三行fprintf不好吗?为何要合并成一个变数? 11/10 23:32
2F:→ s4300026: 听起来是要把 char cell 转 char array就可以了 11/12 20:06
3F:→ s4300026: error 解释是fprintf 不接受定义成 "cell" 类型的输入 11/12 20:07
已解决啦
修正为
for row = 1 : nrows
fprintf(fid, '%d %d %s \n', [a1(row) a2(row) a3{row}]);
end
这样就可以罗~~
谢谢大家的回覆
※ 编辑: totemist (140.114.28.223), 11/12/2015 20:27:19