2017-12-26 17 views
0

複数の.datファイルをインポートして処理し、1つのマトリックスに結合しようとしています。この場合、各セルをその時間(すなわち正規化係数)で除算する必要があります。 この例は2つのdatファイルのためのものですが、私はそれを行うことができましたが、data100rawまで多くのファイルを持っています。そして、私はループをして、すべてを一度に処理したいと思います。各ファイルについてMatlab複数のdatファイルをインポートして組み合わせる

:オリジナルデータOriginal Data

および所望の最終生成物の

data1raw = importdata('2015-04-19004-190-31.04-20140819-5sample transport-PL spectra 10s-0mm.dat') 
data2raw = importdata('2015-04-19004-190-31.04-20140819-5sample transport-PL spectra 10s-2mm.dat') 

%remove first column 
data1raw(:,1) = [] 
data2raw(:,1) = [] 

%Enter time (i.e. normalising factor) 
data1time = [5; data1raw] 
data2time = [10; data2raw] 

%combine 
datacombine = [data1time, data2time] 

%normalise 
width = 2 
height = 1341 
for ihori = 1:width 
    for iverti = 2:height 
     datacombine(iverti,ihori) = datacombine(iverti,ihori)/datacombine(1,ihori) 
    end 
end 

スクリーン final desired product (first row is the normalising factor)

答えて

0

Iは、2つの仮定を作っている(最初の行は正規化因子です)すべてのファイルのスキップ数は2です。

2.データセットの列数は、コードからわかるように1341です。

この場合、すべての正規化係数を変数 'norm'に割り当てる必要があります。次のように

コードは次のようになります。

data=(1:1341)'; 
norm=[n1 n2 n3 ...]; % Your normalization values 

for r=0:2:200 
    mname=sprintf('2015-04-19004-190-31.04-20140819-5sample transport-PL spectra 10s-%dmm.dat',r); 
    mdata=importdata(mname); 
    data=[a mdata(:,2)]; 
end 
data(:,1)=[]; 
data=data./norm; 

は、この情報がお役に立てば幸いです。

関連する問題