如何用randperm生成n×2矩阵

时间:2013-04-17 01:08:32

标签: matlab matrix

我想使用matchUp编写一个名为randperm的MATLAB函数,该函数返回 n ×2矩阵。如果输入是奇数,则该函数应退出并显示解释性消息。

以下是n = 24的示例输出:

matchUp(24)

ans = 
     6    18
    19    10
    20     4
     5     3
    11    15
    23    12
    13     1
    21    24
     2    22
     9    16
     7    17
    14     8

然而,当我randperm(24)时,我得到了一个向量。我该怎么办?

1 个答案:

答案 0 :(得分:0)

我不确定你是否在问题标题或问题正文中提问,因为它们有点不同。话虽如此,你可以做到

nrows = 2;
ncols = 2;
reshape(randperm(ncols*nrows), [nrows ncols])

2x2获取randperm矩阵。这是有效的,因为randperm将生成一个n元素向量,其中n是其第一个参数(此处由ncols*nrows给出)。然后通过reshape函数将该列向量重新整形为矩阵,其中第二个参数[nrows ncols]告诉它将向量转换为[nrows x ncols]矩阵。另外,我应该假设这是家庭作业吗?

相关问题