看板 MATLAB 關於我們 聯絡資訊
其實這要先講到一個前因 任務是要做某個表格並且存出來 表格的格式如下 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)
kurt28:好像是因為文字的關係導致一定得這樣去存入txt? 07/11 22:16
kurt28:剛剛去實驗 似乎會把file_001~003全部當同個字串 然後存成 07/11 22:18
kurt28:ffffiiiilllleeee.... 也就是每列字元全部當一個字串 07/11 22:18
這個我說明一下好了 產生字串之後,只要用char這個指令就可以把字串變成cell了,而且會在空格的地方分段 並且還可以取轉置矩陣喔! ※ 編輯: shuntau 來自: 114.42.53.183 (07/11 22:36) ※ 編輯: shuntau 來自: 114.42.53.183 (07/11 22:37)
kurt28:感謝原PO補充 所以我的意思是 如果能夠處理文字部份 07/11 23:09
kurt28:後面數字部份就沒有太大的問題了 07/11 23:10
shuntau:不過我是還沒想到不用迴圈的方式 07/11 23:48
shuntau:仔細想想,加了字串的東西就不是ascii了啊 07/11 23:50
shuntau:所以一開始使用save跟load的我真的耍白痴了 07/11 23:50