[請益] 3矩陣合併 並存成.txt檔

看板MATLAB作者 (totem)時間9年前 (2015/11/10 22:26), 9年前編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
如題,今天我有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://www.ptt.cc/bbs/MATLAB/M.1447165590.A.D35.html

11/10 23:32, , 1F
分三行fprintf不好嗎?為何要合併成一個變數?
11/10 23:32, 1F

11/12 20:06, , 2F
聽起來是要把 char cell 轉 char array就可以了
11/12 20:06, 2F

11/12 20:07, , 3F
error 解釋是fprintf 不接受定義成 "cell" 類型的輸入
11/12 20:07, 3F
已解決啦 修正為 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
文章代碼(AID): #1MGVwMqr (MATLAB)
文章代碼(AID): #1MGVwMqr (MATLAB)