gpt4 book ai didi

matlab - 使用 repmat 在第一个维度之前创建一个维度

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

你好,我有一个矩阵 A,我想在 A 的所有维度之前的新维度中重复它 9 次。这是我得到的:

>> A = rand(2,6,15,3,2);
>> R = repmat(A, [9 1 1 1 1 1]);
>> size(R)

ans =

18 6 15 3 2

但我希望 R 的大小为:

9 2 6 15 3 2

旁注;我能够将它添加到 A 的维度末尾,然后我尝试 reshape 矩阵,但条目乱七八糟。

有什么建议吗?谢谢!!

最佳答案

你几乎是对的!您将 A 的每个副本按照您所说的添加到末尾,然后您需要执行一个额外的步骤。

按照您在帖子中所说的将其设为 6D 矩阵,将 5D 矩阵堆叠成 9 个切片,然后 permute尺寸。因此:

A = rand(2,6,15,3,2);
R = repmat(A, [1 1 1 1 1 9]);
Rout = permute(R, [6 1 2 3 4 5]);

这应该会给你想要的结果。

上面的代码所做的是组织 5D 切片,以便首先使用第一个维度对每个 5D 矩阵进行索引,然后按顺序对其他维度进行排序。在 Rout 上执行 size 以仔细检查给出:

size(Rout)

Rout =

9 2 6 15 3 2

关于matlab - 使用 repmat 在第一个维度之前创建一个维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24705998/

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