2017-12-26 43 views
0

여러 .dat 파일을 가져 와서 처리하고 단일 행렬로 결합하려고합니다. 이 경우 각 셀을 시간 (즉 정규화 인수)으로 나눌 필요가 있습니다. 이 예제는 2 개의 dat 파일에 대한 것이지만, 나는 그것을 할 수 있지만, data100raw까지 많은 파일을 가지고 있으며, 나는 하나의 모든 것을 처리하기위한 루프를 가지기를 원한다. 반면에 나는 다른 정규화 인자를 설정할 수있다. 각 파일에 대해.Matlab 여러 개의 dat 파일 가져 오기 및 결합

1 : 원래 데이터 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 두 가정을하고있어 (제 1 단째는 정규화 인자이다) 모든 파일의 건너 뛰기 횟수는 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; 

희망을 다음과 같이

코드가 될 것입니다.