2015-02-06 68 views
0

我需要將數據作爲單元格數組導入Matlab,以獲得許多文件,然後再對它們執行一些操作。有什麼辦法可以導入腳本中的數據自動執行而不是手動執行?將數據作爲單元格數組導入到MATLAB中的腳本中

我手動做的是:

-Home>導入數據

- 選擇.txt文件

-As一個單元陣列,2個欄爲文本。

- 列分隔符:逗號。

UPDATE: 這裏一小塊我的.txt文件的:

/home/camroom/Dropbox/Internship/Matlab/Cascade1/training/positive/rawdata/d-0197.bmp, [329 210 50 51] 
/home/camroom/Dropbox/Internship/Matlab/Cascade1/training/positive/rawdata/c-0044.bmp, [215 287 59 48] 
/home/camroom/Dropbox/Internship/Matlab/Cascade1/training/positive/rawdata/e-0114.bmp, [298 244 46 45] 
/home/camroom/Dropbox/Internship/Matlab/Cascade1/training/positive/rawdata/102.bmp, [243 126 163 143] 
/home/camroom/Dropbox/Internship/Matlab/Cascade1/training/positive/rawdata/e-0120.bmp, [250 400 48 48] 

結果:單元陣列與2個文字列。

-The第一列包含路徑圖片:

'/home/camroom/Dropbox/Internship/Matlab/Cascade1/training/positive/rawdata/d-0197.bmp' 
'/home/camroom/Dropbox/Internship/Matlab/Cascade1/training/positive/rawdata/c-0044.bmp' 
'/home/camroom/Dropbox/Internship/Matlab/Cascade1/training/positive/rawdata/e-0114.bmp' 
'/home/camroom/Dropbox/Internship/Matlab/Cascade1/training/positive/rawdata/102.bmp' 
'/home/camroom/Dropbox/Internship/Matlab/Cascade1/training/positive/rawdata/e-0120.bmp' 

-The第二列包含數組作爲文本:

' [329 210 50 51]' 
' [215 287 59 48]' 
' [298 244 46 45]' 
' [243 126 163 143]' 
' [250 400 48 48]' 

謝謝

+1

當然有。發佈文件內容和導入所需結果的小例子 – 2015-02-06 13:02:51

+0

謝謝,我剛剛發佈了它。如果您需要更多信息,請與我們聯繫。 – Zynk 2015-02-06 13:41:43

+0

我覺得這足以理解你想要什麼。我現在不能看看它。也許會有人會。此外,我會嘗試稍後回來 – 2015-02-06 14:08:59

回答

1

您可以使用importdata。這給每個行在不同的單元格。然後您使用regexp'split'選項分開每行:

y = importdata('filename.txt'); 
y = regexp(y, ',', 'split'); %// or ', ' 
y = cat(1, y{:}); 
1

嘗試這個 -

T = readtable('fileName.txt','Delimiter',',','ReadVariableNames',false) 
+0

這會生成一個表格,而不是單元格數組。你將不得不從數組轉換爲 – 2015-02-06 15:37:16

+0

事實上,我正在尋找一個單元陣列,但實際上我想要的是我的最終結果是一個結構,所以我必須將其轉換。如果有辦法直接將其作爲結構獲取,請分享。如果沒有,這會做。謝謝 – Zynk 2015-02-06 15:48:07

相關問題