2016-10-26 3 views
1

attached text file ('scratch.txt')からデータを抽出しようとすると、多くの問題が発生します。私の目標は、テキストファイル内のすべての行を1 x nベクトルに変換することです。ここで、nは、テキストファイル行の変数の数です。私はまた、これらのベクトルに抽出されたすべての値が8バイト浮動小数点であることを確認する必要があります。
これは私がこれまで持っているものですが、私は、私は現在、マトリックスへの出力として持っているものに変換する方法がわからない:MATLABテキストファイルからデータを抽出し、行をベクトルに変換する最も良い方法は?

fid = fopen('scratch.txt'); 
tline = fgetl(fid); 
while ischar(tline) 
    disp(tline) 
    tline = fgetl(fid); 
end 

現在、これは私が出力として得るものです:

4 3  
1 10  
2 30 
3 20 
4 0 
1 4 1 
2 1 3 
3 3 2 
1.e7 1.339 .5  
4   
1 5 3 4  
1  
7 5.0 

答えて

0

str2numを使用して、tlineを数値の行ベクトルに変換します。
各行に要素数が異なるため、データを行列に変換することはできません。行列(定義による)は、各行の要素数と同じです。
できることは、行をcell arrayに保存することです。

res = {}; 
fid = fopen('scratch.txt'); 
tline = fgetl(fid); 
while ischar(tline) 
    res{end+1} = str2num(tline); 
    tline = fgetl(fid); 
end 
関連する問題