0

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

ヘッダーを無視する方法はありますか、それとも完全に間違っていますか?

4

1 に答える 1

0

を使用dlmreadすると、ファイルの読み取りを開始する場所を指定できます。これは、MATLAB インデックスが 0 から始まる数少ないケースの 1 つです。[0,0] は最初の行、最初の列です。したがって、最初の行 (ヘッダーを含む) を無視するには:

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

これは、すべての値 (スキップするヘッダー行を除く) が数値である場合にのみ機能します。

あなたの例textscanも私にはうまく見えます(提供された形式が正しく、実際にヘッダー行が1つしかない場合)。C は cell 配列になります。各列からデータを取得するには、C{n} を使用します。n は列番号です。

ヘッダー行をスキップするのではなく、別の値に読み込むと便利な場合があります。

fid = fopen('data.tsv');
C_header = textscan(fid, '%s',9);
C = textscan(fid, ['%s' repmat('%f',1,8)]);
fclose(fid);
于 2013-12-09T15:04:52.673 に答える