到目前为止,我使用了 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:在新的一年里,你们所有人都有很多美好的想法。