0

n × 2 行列を返すmatchUpusingというMATLAB 関数を作成したいと考えています。入力が奇数の場合、関数は終了し、説明メッセージを表示する必要があります。randperm

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)するとベクトルが得られます。続行するにはどうすればよいですか?

4

1 に答える 1

0

質問のタイトルで質問しているのか、質問の本文で質問しているのかは、少し異なるためわかりません。そうは言っても、あなたはできる

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

2x2からマトリックスを取得しますrandperm。これは機能し、randpermn 要素のベクトルを生成します。ここで、n はその 1 番目のパラメーターです (ここでは、 で与えられますncols*nrows)。この列ベクトルは、関数を介して行列に再形成されreshapeます。2 番目のパラメーター[nrows ncols]は、ベクトルを [nrows x ncols] 行列に変換するように指示します。また、これは宿題だと思いますか?

于 2013-04-17T04:59:04.703 に答える