1

到目前为止,我使用了 3 个循环来构建一个矩阵,但是需要很长时间,我想将它向量化。但要么这是不可能的,要么我采取了错误的方式来做到这一点。无论如何,我在墙前,我需要你的帮助。

这是循环:

AngleList = [0 : 10 : 300];            % 31 elements

fx_mat 是一个(1000,120,31)矩阵,31是为AngleList对应的31个元素。

for Aaa = 1:Nb_loop1                   % Nb_loop1 = 3
    for Bbb = 1:Nb_loop2               % Nb_loop2 = 120
        for Ccc = 1:Nb_loop3           % Nb_loop3 = 1000
            Angle = rand()*300;        % Then Angle is between 0 and 300
            Fx_mat_interp(Aaa,Bbb,Ccc) = interp1(AngleList, Fx_mat(Ccc,Bbb,:), Angle);
        end
    end
end

我首先尝试做的是用我的数据创建矩阵:

m_Angle     = rand(Nb_loop3,Nb_loop2)*300         % 1000x120 matrix
m_AngleList = permute(reshape(repmat(AngleList,Nb_loop3,Nb_loop2),Nb_loop1,Nb_loop3,Nb_loop2),[1 3 2]);
                       % I repeat my AngleList vector in a 1000x120x31 matrix
for Aaa = 1:Nb_loop1
   Fx_mat_interp(Aaa,:,:) = ?????(m_AngleList, Fx_mat(Nb_loop3,Nb_loop2,:), m_Angle);
end

我要换????相当于interp1,但我找不到它。

你有什么想法可以帮助我吗?

PS:在新的一年里,你们所有人都有很多美好的想法。

4

0 回答 0