Matlab 如何生成n×;2带randperm的矩阵

Matlab 如何生成n×;2带randperm的矩阵,matlab,matrix,Matlab,Matrix,我想使用randperm编写一个名为matchUp的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

我想使用
randperm
编写一个名为
matchUp
的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)
时,我得到一个向量。如何继续?

我不确定您是在问题标题还是在问题正文中提问,因为它们有点不同。话虽如此,你也能做到

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

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

这一个似乎有效,我只是将nrows上的2改为12。谢谢