2012-06-18 55 views
0

我正在使用一個matlab項目。我有一個這樣的文本文件matlab中的多文本文本讀取

AGE 1 1 
SEX 2 2 
NOP 3 0 
SES 0 5 
PDD 6 6 
ACD 0 0 
UDC 8 3 

並且我想從這個製表符分隔的文件使用像下面的示例文本讀取創建一個變量。

x= 

    'AGE' 1 1 
    'SEX' 2 0 
    'NOp' 3 3 
    'SES' 0 5 
    'PDD' 6 6 
    'ACD' 0 0 
    'UDC' 8 3 

我該怎麼辦?我嘗試了很多東西,但無法找到解決方案,請幫助。

回答

0

你可以這樣來做:

Filename = 'testfile.txt';  
fid = fopen(Filename); 
Output = textscan(fid, '%s %d %d', 'delimiter', ' ', 'MultipleDelimsAsOne', 1); 
fclose(fid); 

那麼你就必須:

Output = 
{7x1 cell} [7x1 int32] [7x1 int32] 

Output{1} = 
'AGE' 
'SEX' 
'NOP' 
'SES' 
'PDD' 
'ACD' 
'UDC' 

Output{2} = 
     1 
     2 
     3 
     0 
     6 
     0 
     8 

Output{3} = 
     1 
     2 
     0 
     5 
     6 
     0 
     3 

然後擴展單元陣列元素,讓每一個元件可以直接解決:

x = [ Output{1}, num2cell(Output{2}), num2cell(Output{3}) ] 

x = 
'AGE' [1] [1] 
'SEX' [2] [2] 
'NOP' [3] [0] 
'SES' [0] [5] 
'PDD' [6] [6] 
'ACD' [0] [0] 
'UDC' [8] [3] 

然後你可以直接解決元素:

x(1,1) = 
'AGE' 

x(5,2) = 
[6] 
+0

謝謝你的工作,但我將如何抓住任何單元格值...例如,我想獲得(1,1)單元格值如何達到「年齡」字符串... – effe

+1

@OzgurEffe Check編輯的答案。 'x(1,1)'返回''AGE''。 – nrz

+0

是否有任何方式將所有第一列單元格值賦給新變量名稱,如newvar_AGE = 1 newvar_SEX = 2 newvar_NOP = 3? – effe