2013-12-09 66 views
0

我有一個.tsv文件,我希望在MATLAB中打開,但是我遇到了一些問題。與MATLAB中的.tsv文件混淆(轉換爲矩陣?)

我曾嘗試以下

fid = fopen('data.tsv'); 
C = textscan(fid, ['%s' repmat('%f',1,8)], 'HeaderLines', 1); 
fclose(fid); 

,並得到了一點關係都沒有與我的文件中的一些怪異的值。我也試過:

data = dlmread('data.tsv', '\t'); 

,並得到這個

Error using dlmread (line 139) 
Mismatch between file and format string. 
Trouble reading number from file (row 1u, field 1u) ==> Participant Assessment 
Experiment Block Trial 
Answer Reaction Timestamp Free Response\n 

有一些方法可以讓我得到它忽略了頭,還是我這樣做完全錯了?

+0

可能重複[如何閱讀文字+數字TSV到MATLAB?(HTTP:/ /stackoverflow.com/questions/14207518/how-to-read-a-textnumeric-tsv-into-matlab) –

+0

就像我說的我試過 – EllesBellz

回答

0

使用dlmread您可以指定從文件開始讀取的位置。這是MATLAB索引從0開始的幾次之一 - [0,0]是第一行,第一列。因此,忽略第一行(包含你的頭):

data = dlmread('data.tsv','\t', 1, 0); 

如果所有的值(比標題行跳過等)是數字這隻會工作。

你對textscan的例子也很好看(只要提供的格式是正確的,並且確實只有一個標題行)。 C將是一個單元陣列;從每列獲取數據使用C {n},其中n是列號。

而不是跳過標題行,它有時是有用的,只是看它在一個單獨的值:

fid = fopen('data.tsv'); 
C_header = textscan(fid, '%s',9); 
C = textscan(fid, ['%s' repmat('%f',1,8)]); 
fclose(fid);