[討論] 有沒有不用迴圈輸出cell array的方式

看板MATLAB作者 (貓柳田博士)時間12年前 (2013/07/11 17:44), 編輯推噓2(206)
留言8則, 2人參與, 最新討論串1/1
其實這要先講到一個前因 任務是要做某個表格並且存出來 表格的格式如下 file_001 12 321 523 file_002 26 261 286 file_003 23 989 889 ... ... ... ... 當然以上的東西幾乎都是可以直接用指令寫出來 就直覺上來說,通常就是會先處理最左邊字串的部分 然後再處理右邊矩陣的部分 最後因為字串跟矩陣無法結合,所以用了cell array來存 到這邊都還沒問題,直到存出的時候就發生問題了 因為想說變數的輸出大概是這樣 save file.txt cell -ascii 結果這招不能拿來給cell array使用 後來自己查了一下,大致上的作法就是用fopen與fprintf這兩個指令去做 以上面的例子來說,大概會寫成這樣 scell = size(cell) fid=fopen('cell.txt','w+'); for i=1:scell(1) fprintf(fid,'%s %f %f %f \n',cell(i,:)); end fclose(fid); 任務是達成了 但是各位請注意,這個有用到迴圈 所以想請教各位,有沒有不使用迴圈而達成任務的方法? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.190.70 ※ 編輯: shuntau 來自: 140.112.190.70 (07/11 17:45)

07/11 22:16, , 1F
好像是因為文字的關係導致一定得這樣去存入txt?
07/11 22:16, 1F

07/11 22:18, , 2F
剛剛去實驗 似乎會把file_001~003全部當同個字串 然後存成
07/11 22:18, 2F

07/11 22:18, , 3F
ffffiiiilllleeee.... 也就是每列字元全部當一個字串
07/11 22:18, 3F
這個我說明一下好了 產生字串之後,只要用char這個指令就可以把字串變成cell了,而且會在空格的地方分段 並且還可以取轉置矩陣喔! ※ 編輯: shuntau 來自: 114.42.53.183 (07/11 22:36) ※ 編輯: shuntau 來自: 114.42.53.183 (07/11 22:37)

07/11 23:09, , 4F
感謝原PO補充 所以我的意思是 如果能夠處理文字部份
07/11 23:09, 4F

07/11 23:10, , 5F
後面數字部份就沒有太大的問題了
07/11 23:10, 5F

07/11 23:48, , 6F
不過我是還沒想到不用迴圈的方式
07/11 23:48, 6F

07/11 23:50, , 7F
仔細想想,加了字串的東西就不是ascii了啊
07/11 23:50, 7F

07/11 23:50, , 8F
所以一開始使用save跟load的我真的耍白痴了
07/11 23:50, 8F
文章代碼(AID): #1HtdwD__ (MATLAB)