gpt4 book ai didi

matlab - 有没有办法在 Matlab 中矢量化 squeeze 的使用?

转载 作者:太空宇宙 更新时间:2023-11-03 19:56:05 26 4
gpt4 key购买 nike

我目前正在使用 squeeze 从矩阵中删除两个单一维度。矩阵是一个大的 4d 矩阵 M(:,:,:,:)。前两个维度是行和列坐标(yx)。第三维变量(indexes)选择了M第三维的几个值。

在我运行的 for 循环中,矩阵 M 被寻址为 M(y,x,indexes,:),这使得前两个维度成为单一维度.然后使用 squeeze 删除这些尺寸,以便在 pdist 中使用,如下所示:

pdist(squeeze(M(y,x,indexes,:)))

在这种情况下,我可以矢量化 squeeze 的使用吗? (在循环中占用了很多时间)

最佳答案

如果矩阵 M 在循环内没有改变,一个简单的解决方案是用 PERMUTE 重新排序矩阵维度。在运行 for 循环之前:

Mperm = permute(M,[3 4 1 2]);

然后你可以将 Mperm 而不是 M 作为 Mperm(:,:,y,x)

关于matlab - 有没有办法在 Matlab 中矢量化 squeeze 的使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9683261/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com