我正在尝试遍历固定大小的3d数组,以绘制第3个矢量尺寸,如下所示:

%respo is a 3D array of fixed size defined above
for ii = 1:size(respo,1)
    for jj = 1:size(respo,2)
        plot(squeeze(respo(ii,jj,1:8)))
    end
end

有没有比通过2级循环准确地指向每次迭代绘制的矢量更好的方法了?

我在MATLAB中为每个数组都建立了线性索引,但是我很难想出一种避免双重循环的方法。

最佳答案

应用于矩阵的plot将绘制该矩阵的列。因此:重新排列尺寸,以使第三个成为新的第一个,其他合并成新的第二个,然后只需调用plot

plot(reshape(permute(respo, [3 1 2]), size(respo,3), []))

关于arrays - MATLAB是否提供了一种更优雅的方法来遍历3D数组以获得3维向量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21087274/

10-10 21:16