1

いくつかのテキスト ファイル (1.txt、2.txt、...、60.txt) があり、それらすべてに 5 行のヘッダーがあります。次のコードを使用していますが、ヘッダーを認識できず、すべてのデータをインポートできません。matlab が特定の行からインポートを開始するようにするにはどうすればよいですか?

num_txt=60;
input_dir='C:\data';

filenames=dir(fullfile(input_dir,'*.txt'));
i=1;
for n=1:num_txt    
    filename=fullfile(input_dir, filenames(n).name);
    img=importdata(filename);     
    data(:,i)=img(:);
    i=i+1;
end
4

2 に答える 2

2

IMPORTDATAには、delimiterIn と headerlinesIn の 2 つの追加パラメーターがあります。

したがって、使用します(区切り文字としてタブを想定):

img=importdata(filename,'\t',5);

dataまた、マトリックスを事前に割り当てることをお勧めします。

コードが機能するためには、すべての入力ファイルが同じサイズであることを確認してください。そうしないと、エラーが発生しますdata(:,n)=img(:);(はい、nの代わりに使用してくださいi)。

上記の 2 つの問題については、ループに挿入できます。

if n==1
    data = zeros(numel(img),num_txt);
else
    assert(numel(img)==size(data,1),'sprintf('File %s has different size', filenames(n).name))
end
于 2013-02-25T18:48:13.630 に答える
0

基本を知っていて、MATLAB を使用してテキストを読む方法に多くの時間を費やしたくない場合は、ここにあるreadtext.m を使用することをお勧めします。しかし、あなたが学んでいるなら、私はあなた自身でそれをすることをお勧めします.

于 2013-02-25T19:39:09.367 に答える