【问题标题】:Create a 3D matrix with the 3rd dimension being a random distribution [duplicate]创建一个 3D 矩阵,其中第 3 维是随机分布 [重复]
【发布时间】:2016-02-19 00:26:26
【问题描述】:

我正在尝试在 MATLAB 中创建一个 3D 矩阵(例如 x、y、z)。 x 和 y 维度表示二维位置(可通过索引 x 和 y 寻址),z 应表示包含正态分布随机数的向量。

例如,如果我要提取向量 (3,5,z),它将给出位置 (3,5) 处 z 维度中的所有随机值。 x 和 y 的大小都应为 100,z 的大小应为 1000。

【问题讨论】:

  • tmp = rand(100,100,1000) 怎么样。执行nums = tmp(3,5,:) 之类的操作将返回一个 1 x 1 x 1000 矩阵,您可以在其上执行squeeze 以减少额外维度
  • 您的问题与“我想要一个大小为 [x y z] 的随机矩阵”有何不同?

标签: matlab matrix random 3d distribution


【解决方案1】:

你可以这样做:

z = 1:1000;
A = rand(100, 100, numel(z));
rvec = reshape(A(3, 5, z), [numel(z), 1]);

这里,rvec 是您要查找的随机向量。

【讨论】:

  • 定义xy 有什么意义?你为什么不直接做A = rand(100, 100, 1000);??是不是觉得有点浪费?
  • 同意。编辑它。
猜你喜欢
  • 2014-09-21
  • 1970-01-01
  • 1970-01-01
  • 2016-04-14
  • 1970-01-01
  • 2016-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多