Matlab コード:
eminc = 2.5; %the increment of the emission spectra you collected
exinc = 5; %the increment of the excitation spectra you collected
em = 250:eminc:560; %Emission scan
ex = 240:exinc:450; %Excitation scan
A = xlsread(char(Afile)); % Reads in raw EEM file in .xlsx format.
ExTop=[0,ex]; %Recreates the row of excitation wavelengths cut off
A=[ExTop ; A]; %Adds the excitation wavelengths back into the EEM file
Asize = size(A);
emfind = A(:,1);
emstart = find(emfind == findem(1));
emend = Asize(1);
exfind = A(emstart-1,:);
exstart = find(exfind == findex(1));
exend = Asize(2);
A = A(emstart:emend,exstart:exend);
for A=A(1:125,1:43)
if emstart<=(ex+10)
A=0;
if emstart>=(ex*2+20)
A=0;
end
end
end
データは励起発光マトリックス (サイズ 125x43 マトリックス) からの蛍光強度であり、励起波長と発光波長もデータに添付されています (サイズ 126x44 マトリックス)。
発光波長が <= (励起波長 + 10) の場合、および励起波長が >= (励起波長 * 2 + 20) の場合、データ行列に値 0 を割り当てたい
私は for ループと if ステートメントが正しくないことを知っています。これは主に、マトリックス内のデータのその領域を呼び出す方法さえわからないためです。
コードは少し「冗長」であるため、スキャン パラメータ (励起波長と発光波長) が変更された場合、それらを割り当てることができ、コードの残りの部分は関係なく機能します。
どんな助けでも大歓迎です。ありがとう