matlab 如何从变量的值在每次迭代中改变来创建2D矩阵

w3nuxt5m  于 2022-11-15  发布在  Matlab
关注(0)|答案(1)|浏览(154)

这个问题有两个部分,在我在标题中提到的部分之前,首先我需要遍历图像中的每个像素(图像有610x340x103),基本上每个ij坐标给我103个值(深度)。我想知道我写的代码有没有用。如果是这样,它将我带到**第二部分:**我有一个函数,它给我输出“a”,比方说。我把它放在for循环中,所以在每次迭代中,我都会为变量“a”获得一个新值。现在我要做的是从这个“a”变量创建一个610x340维的2D矩阵。这就像我只从这个变量创建我自己的图像。

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

那么,对于一个新的2D矩阵,我如何修改这段代码,使其值在每次迭代中都与i和j位于完全相同的位置?

4jb9z9bj

4jb9z9bj1#

您只需在循环前初始化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

相关问题