这个问题有两个部分,在我在标题中提到的部分之前,首先我需要遍历图像中的每个像素(图像有610x340x103(,基本上,每个I和j坐标都给了我103个值(深度(。我想知道我写下的代码是否有效。如果是这样的话,我将进入第二部分:我有一个函数,它给我输出";a";比方说。我把它放在for循环中,所以在每次迭代中,我都会得到变量"的一个新值;a";。现在我想做的是从这个"矩阵"创建一个具有610x340维度的2D矩阵;a";变量这就像我只是从这个变量中创建自己的图像。
for i=1:1:610
for j=1:1:340
allbands=paviaU(i,j,:);
writematrix(allbands,'allbands.txt','WriteMode','append');
fftmy=abs(fft(allbands));
fftmynew=fftmy(1:52);
[xData, yData] = prepareCurveData( xaxis2, fftmynew );
% Set up fittype and options.
ft = fittype( 'exp1' );
opts = fitoptions( 'Method', 'NonlinearLeastSquares' );
opts.Display = 'Off';
[fitresult, gof] = fit( xData, yData, ft, opts );
values=coeffvalues(fitresult);
a=values(1);
end
end
那么,我如何修改这个代码;a";在新的2D矩阵的每次迭代中,是否与i和j处于完全相同的位置?
您只需要在循环之前初始化a
,并将其分配给相同的索引
a = NaN(610,340);
for i=1:1:610
for j=1:1:340
% stuff to work out 'values'...
a(i,j) =values(1);
end
end