如何创建一个随机的3D矩阵?

5
有没有办法随机创建一个三维矩阵?使用randint函数可以创建随机的二维矩阵。有没有类似的内置函数?
例如,使用randint函数可以轻松生成4x4的矩阵。如果我想创建一个尺寸为4x4x3的矩阵呢?

2
也许可以创建一个4x(4x3)= 4x12矩阵,并将其重塑为4x4x3? - Benoit_11
1
请注意,在MATLAB R2014a中,randint函数已经过时,并且可能在未来被删除。正如一些答案所述,您可以使用randi代替。 - hbaderts
2个回答

11
您可以使用randi(imax, size1, size2, size3)函数,其中imax是随机整数的最大值(平均上界),而1是下界。您可以将size参数扩展到您想要的sizeN大小。
以下是其使用示例:
>> A = randi(5, 4, 4, 3)

A(:,:,1) =

     4     4     5     4
     4     1     2     2
     2     1     3     3
     4     3     2     4


A(:,:,2) =

     5     1     5     1
     5     2     2     2
     3     5     5     4
     1     2     2     3


A(:,:,3) =

     2     5     2     3
     5     2     3     4
     3     4     1     5
     3     4     1     1

7

仔细阅读帮助文档,您会发现randi函数可以接受任意数量的维度。您可以使用randi(10,3,3,3)来生成一个三维数组。

randi(10,3,3,3)

ans(:,:,1) =

     9    10     3
    10     7     6
     2     1    10


ans(:,:,2) =

    10    10     2
     2     5     5
    10     9    10


ans(:,:,3) =

     8     1     7
    10     9     8
     7    10     8

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接