這個問題有兩個部分,在我在標題中提到的部分之前,首先我需要遍歷影像中的每個像素(影像有 610x340x103)基本上,每個i和j坐標給我 103 個值(深度)。我想知道我寫的代碼是否可以完成這項作業。如果是這樣,它會將我帶到第二部分: 我有一個函式可以讓我輸出“a”。我把它放在 for 回圈中,所以在每次迭代中,我都會為變數“a”獲得一個新值。現在我想做的是從這個“a”變數創建一個尺寸為 610x340 的二維矩陣。就像我只是從這個變數中創建自己的影像一樣。
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”的值在每次迭代中與新的二維矩陣的i 和 j位于完全相同的位置?
uj5u.com熱心網友回復:
您只需要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
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/525545.html
標籤:matlab图像处理矩阵
