2014-12-13 156 views
0

我想在MATLAB中將文本文件(逗號分隔值)轉換爲矩陣。我已經能夠將單行讀取到單元陣列中,但是我無法將這些值轉換爲矩陣形式。通過讀取文件的行獲得的7X1細胞是一排大且具有下列值Matlab:單元格到矩陣行

line = 
     '123' 
     '' 
     '"Foo"' 
     [1X27 char] 
     '1.01' 
     '2.02' 
     '0' 

因此,該文件基本上是類似的線的集合。任何關於如何將這些行轉換爲矩陣形式的建議?任何幫助,將不勝感激。

+0

是的,我想輸出是格式行的= [123美孚[1X27字符] 1.01 2.02 0] – BajajG 2014-12-13 08:44:41

+1

這'[行{:}]'? – Divakar 2014-12-13 15:10:11

回答

0

您可以使用cell2mat函數從您的單元格創建矩陣(有關詳細信息,請參見MATLAB help page)。由於您的單元格是一個列向量,並且您想要一個行向量,因此您必須先轉置單元格。

row = cell2mat(line.'); 

如果你想所有元素之間添加一個空格,這裏有一個辦法做到這一點:

% Remove all empty fields 
line = line(~cellfun(@isempty,line)); 

% Add a space after each element 
line = strcat(line,{' '}); 

% Now call cell2mat 
row = cell2mat(line.'); 

% and remove space at end 
row = strtrim(row); 

您可以使用regexpi找到引號和刪除它們。

row = row(regexpi(row,'"')) = ''; 
+0

我之前嘗試過這樣做,但它生成的輸出爲字符串'123'Foo「abcdefghijklmnopqrstuvwxyza1.012.020',它不是所需的格式。 – BajajG 2014-12-13 08:59:09

+0

所以你需要所有條目之間的空格?而不是char數組的內容,你需要文本'[1x27 char]'? – hbaderts 2014-12-13 09:01:26

+0

不,我需要矩陣中的所有條目以及[1x27字符]中的文本,而不是'[1x27字符]'。 – BajajG 2014-12-13 09:08:33