看板 MATLAB 關於我們 聯絡資訊
※ 引述《chris70211 (克里斯)》之銘言: : 標題: [討論] strvcat字串長度不同 : 時間: Fri Nov 30 11:18:31 2012 : : 剛剛在簡化txt讀檔的問題試著用strvcat將字串帶入矩陣 : : T1='''C:\Users\user\Desktop\公司\數據\原始數據\test\5g'; : T2='''C:\Users\user\Desktop\公司\數據\原始數據\test\200g'; : M=strvcat(T1,T2); : files=0; : for i=1:2 : %第j類資料 : files=files+1; : ['train200g',num2str(i),'=textread(',M(i,:),' : (',num2str(i),').txt'',''%d'');'] : eval(['train200g',num2str(i),'=textread(',M(i,:),' : (',num2str(i),').txt'',''%d'');']); : : end : : 字串都能夠順利的代入 但是顯示出來會變成這樣 : 'C:\Users\user\Desktop\公司\數據\原始數據\test\5g (1).txt','%d'); : 'C:\Users\user\Desktop\公司\數據\原始數據\test\200g (2).txt','%d'); : 前面太長就不放了 : : 主要是由於5g跟200g字串長度不同 結果導致我5g的檔案無法讀取 : 不知道有沒有什麼辦法可以讓5g那段根據他的字串長度顯示就好 : 正常應該是這樣 : 'C:\Users\user\Desktop\公司\數據\原始數據\test\5g (1).txt','%d'); 字串不一樣可以考慮存成cell T1='''C:\Users\user\Desktop\公司\數據\原始數據\test\5g'; T2='''C:\Users\user\Desktop\公司\數據\原始數據\test\200g'; M={T1,T2}; files=0; for i=1:2 %第j類資料 files=files+1; ['train200g',num2str(i),'=textread(',M{i},... '(',num2str(i),').txt'',''%d'');'] eval(['train200g',num2str(i),'=textread(',M{i},... '(',num2str(i),').txt'',''%d'');']); end : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 210.71.166.49 : 一直在自問自答XDDD : 發現加入deblank就可以刪除最後的空白字串了^^ : 希望對一些有同樣問題的版友能有所幫助^^ : : 想問問有沒有在M=strvcat(T1,T2)的地方 : 能不能改成 M(i)=strvcat(T(i)); 然後將字串丟入T陣列中 : 這樣假設有100個檔案要輸入 就不用一直排了 : ※ 編輯: chris70211 來自: 210.71.166.49 (11/30 11:28) 改成cell的話這就滿簡單了 基本上就是M{i}=Ti for迴圈配合num2str和eval就可以做到 這個你應該可以自己試試看 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.121.146.175