2013-04-17 68 views
0

我想用randperm編寫一個叫做matchUp的MATLAB函數,它返回一個n×2矩陣。如果輸入是奇數,則該函數應該退出並顯示解釋性消息。如何用randperm生成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)我得到的載體。我如何繼續?

回答

0

我不確定您是在問題標題還是問題主體中提問,因爲它們有點不同。隨着中說,你可以做

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

randperm讓你2x2矩陣。這是有效的,因爲randperm將生成一個n元素向量,其中n是它的第一個參數(在這裏,由ncols*nrows給出)。然後通過reshape函數將此列向量重新整形爲矩陣,其第二個參數[nrows ncols]指示它將向量轉換爲[nrows x ncols]矩陣。另外,我應該認爲這是作業嗎?

+0

這一個似乎工作我只是改變了2的nrows到12.謝謝! – sneakatone