matlab中的multitype textread

时间:2012-06-18 20:51:38

标签: matlab file-io

我正在使用matlab项目。我有一个像这样的文本文件

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

并且我想使用textread从此制表符分隔文件创建一个变量,如下面的示例所示。

x= 

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

我该怎么办?我尝试了很多东西,但无法找到解决方案请帮忙。

1 个答案:

答案 0 :(得分: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]