matlab - 按照模式创建多维数组

标签 matlab multidimensional-array vectorization

我正在使用 matlab 制作一个 3 维数组,它按照某种模式进行。虽然我可以手动写出数组,但我确信有一种更快的方法来做到这一点。

multiArray = cat(3,...
               [1+randn(4,3); 1*randn(4,3)],...
               [2+randn(4,3); 2*randn(4,3)],...
               [3+randn(4,3); 3*randn(4,3)]);

如果我想让上面的数组为 8x3x25 那么最后一行就是

[25+randn(4,3); 25*randn(4,3)]

但是我怎样才能在不经历所有繁琐的干预步骤的情况下制作这样的数组呢?

最佳答案

同时mikkola basically got the solution ,最后不需要改变尺寸。

s=[4,3,25];
it=reshape(1:s(3),1,1,[]);
out = [bsxfun(@plus , it, randn(s));...
       bsxfun(@times, it, randn(s))];

关于matlab - 按照模式创建多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33734820/

相关文章:

python - 将矩阵的每个元素作为一个 block 重复到新矩阵中

MATLAB 2014a (8.3) 编译器运行时错误 libmwlaunchermain.so

matlab - 使单击 MATLAB 绘图标记绘制子图

javascript - 在二维数组中前后移动

python - 在 Numpy 中将一维数组添加到三维数组

matlab - 使用逻辑索引而不是 FIND

PHP 从多维数组创建多个表

javascript - spring mvc 使用 javascript 附加 inslide [[]] 多个数组值

r - 迭代数据帧,其中每次迭代都有效地依赖于 R 中的前一项

Python,许多 3x3、奇异、对称、矩阵的同时伪反转