4つの列を持つテキストファイルがあり、各列には65536のデータポイントがあります。行のすべての要素はコンマで区切られます。例えば:
X,Y,Z,AU
4010.0,3210.0,-440.0,0.0
4010.0,3210.0,-420.0,0.0
etc.
したがって、65536行があり、各行には上記のように4つのデータ値があります。行列に変換したいです。テキストファイルからExcelファイルにデータをインポートしてみました。そうすればマトリックスを簡単に作成できるためですが、データの半分以上が失われました。
ファイル内のすべてのエントリが数値の場合は、a = load('file.txt')
を使用するだけです。 65536x4のマトリックスa
を作成する必要があります。 csvread
よりもさらに簡単です
'importdata'を使用してみたことがありますか?必要なパラメーターは、ファイル名と区切り文字のみです。
>> tmp_data = importdata('your_file.txt',',')
tmp_data =
data: [2x4 double]
textdata: {'X' 'Y' 'Z' 'AU'}
colheaders: {'X' 'Y' 'Z' 'AU'}
>> tmp_data.data
ans =
4010 3210 -440 0
4010 3210 -420 0
>> tmp_data.textdata
ans =
'X' 'Y' 'Z' 'AU'
Excelをいじる代わりに、テキストファイルをMATLABに直接読み取ることができるはずです(関数 [〜#〜] fopen [〜#〜] 、 [〜#〜]を使用) fgetl [〜#〜] 、 [〜#〜] fscanf [〜#〜] 、および [〜#〜] fclose [〜#〜] ):
fid = fopen('file.dat','rt'); %# Open the data file
headerChars = fgetl(fid); %# Read the first line of characters
data = fscanf(fid,'%f,%f,%f,%f',[4 inf]).'; %'# Read the data into a
%# 65536-by-4 matrix
fclose(fid); %# Close the data file