我有一个制表符分隔的文本文件,其中包含一些组织成列的数据,第一行充当列名,例如:
TN Stim Task RT
1 A A 500.2
2 B A 569
3 C A 654
以此类推。
我正在尝试使用readtable将这个文本文件读入MATLAB(r2018a)
Data1 = readtable(filename);
我设法获取Data1
表中的所有数据,但列名显示为Var1
,Var2
等。如果我使用“名称/值”对指定读取第一行作为列名,如:
Data1 = readtable(filename, 'ReadVariableNames', true);
然后我将列名作为第一个数据行,即
1 A A 500.2
所以看起来它完全忽略了第一行。如何修改readtable
调用以将第一行中的条目用作列名?
答案 0 :(得分:1)
我知道了。似乎最后一列之后的某些行中还有一个附加选项卡。因此,readtable
正在将其读取为附加列,但没有要为其分配的列名称。看来,如果缺少任何列名,则将它们全部命名为Var1,Var2等。
答案 1 :(得分:0)
基于上面示例文件文本的格式设置,看来列标签用空格而不是制表符分隔数据。在这种情况下,readtable
(基于数据)将假设delimiter是制表符,并将列标签视为header line to skip。在它们之间添加标签,您应该会很高兴。
在列标签之间使用空格进行测试:
% File contents:
TN Stim Task RT
1 A A 500.2
2 B A 569
3 C A 654
>> Data1 = readtable('sample_table.txt')
Data1 =
Var1 Var2 Var3 Var4 % Default names
____ ____ ____ _____
1 'A' 'A' 500.2
2 'B' 'A' 569
3 'C' 'A' 654
使用列标签之间的标签进行测试:
% File contents:
TN Stim Task RT
1 A A 500.2
2 B A 569
3 C A 654
>> Data1 = readtable('sample_table.txt')
Data1 =
TN Stim Task RT
__ ____ ____ _____
1 'A' 'A' 500.2
2 'B' 'A' 569
3 'C' 'A' 654