1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
function [cfg]=t2fit_nnlsB(dirpath)
close all;
sampleName=sName(dirpath);
Idata=load(dirpath);
[sampleName, remain] = strtok(sampleName, '.');
dirpath='F:\PTF\Bonduelle\Traitement\France_14\';
dirname=[dirpath, sampleName];
mkdir(dirname);
cd(dirname);
te =Idata(:,2);
y_e=Idata(:,3);
figure(1),clf;
%plot(te, y_e, 'x');
semilogx(te, y_e, 'x');
title(['T2 multiexp_', sampleName ]);
xlabel('TE (ms)');
ylabel('Signal');
% Setup the kernel
t2 = te';
A = exp( - kron(te, 1./ t2) );
% Add a baseline component
A = [A ones(size(A,1), 1)];
%x0=[7, 30, 150];
[x,RESNORM,RESIDUAL,EXITFLAG,OUTPUT,LAMBDA] = lsqnonneg(A, y_e);
baseline = x(end);
amplitudes = x(1:end-1);
% amplit=nonzeros(amplitudes);
[amplit, indices]=findpeaks(amplitudes);
pop=amplit./sum(amplit);
t2values=te(1)*indices;
results=[t2values pop]
fid = fopen('resultat.txt','w');
save ('resultat.txt' , 'results','-ascii');
fclose(fid);
end |
Partager