matlab - 将 1D 向量 (nx1) 更改为 3D 矩阵 (1x1xn)

标签 matlab matrix

给定 a= [1;2;3] 我想将其更改为 b 其中 b

b(1,1,1) = 1
b(1,1,2) = 2
b(1,1,3) = 3.

我该怎么做?没有内置命令吗?

最佳答案

使用permute 第一个维度作为第三个维度放在最后,并将第三个和第二个维度放在前面(它们的顺序无关紧要)。因此,我们将有两个这样的实现,就像这样 -

permute(a,[3 2 1])

permute(a,[2 3 1])

您还可以使用 reshape将元素推回三维,就像这样 -

reshape(a,1,1,numel(a))

关于permute的小教程

没有任何permute(尺寸重新排列)更改的 3D 数组 A 将是:permute(A,[1 2 3])

现在,您所做的任何排列都将是 w.r.t. [1 2 3] 的原始顺序。假设您想交换第 1 维和第 3 维,所以交换 [1 2 3] 中的 13,给我们 [3 2 1] 并将其用作 permute 中的第二个参数。

这是为了让您的置换技能更强 - 比方说,您交换第一维和第三维,然后对这个置换的 3D 数组进行一些处理。现在,你想回到原来的顺序,所以你需要换回第 1 维和第 3 维。所以,你再次使用 [3,2,1],像这样 - permute(permute(A,[3 2 1]),[3 2 1]) 这基本上是 permute(A,[1 2 3]) 是的,那是 A,回到 < em>家!

关于matlab - 将 1D 向量 (nx1) 更改为 3D 矩阵 (1x1xn),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32732524/

相关文章:

matlab - 函数返回具有相同参数的不同答案

math - 将 3d 面绘制为 2d

python - Matlab 到 Python 矩阵代码

python - 仅使用数字 `matrix[:,mask]` 和 `matrix[mask,:]` 将 `0` 转置为 `1` ?

image - 在 Matlab 中保存 imagesc 输出

floating-point - 定点 MATLAB DSP 算法

python - 在 Matlab 中以 Python 的方式进行循环

matlab - Matlab 对 mnrfit 不正确吗?

matlab - 矩阵各行的排列

r - 在 R 中创建多个相同(相同维度)矩阵的列表