我希望得到k
的隨機下標可用於C++程序,當前從給定一組下標的文件加載數據。MATLAB:從矩陣中獲取具有條件的k個隨機下標
我有一個MxN
矩陣A
雙值和Mx1
矩陣B
與整數從0到20
我怎麼能得到從A
k
隨機標與B
的條件?在例如,給定:
A = [ 0.25 0.25 0.25 0.25
0.18 0.18 0.18 0.18
0.36 0.36 0.36 0.36
0.51 0.51 0.51 0.51 ]
B = [ 0
1
2
1 ]
我想如果B(i) == 1
從A
得到k = 1
隨機行標i
。所以,我正在尋找i == 1
或i == 4
。
我第一次嘗試創建一個邏輯索引:
idx = B == 1;
,然後從A
獲得與該條件如下元素:
r = A(idx, :);
最後,做一個排列在r
,以便獲得k
行:
randperm(size(r))
但我現在卡住了,因爲我不知道如何將排列轉換爲矩陣A
。
我也試圖理解函數[I,J] = ind2sub(siz,IND)
,但現在不知道如何加入下標與randon排列。此外,randperm(size(r))
的結果與r
的大小有關。
那麼,如何從A
得到k
隨機下標,條件是B
?我們的想法是使用標在C++程序作爲輸入參數
我不明白你想要做什麼。它看起來像你用'B'來選擇你感興趣的'A'的行,但是什麼?你想從'A'的那些行中隨機選擇一個元素嗎?請嘗試解釋一些。 – shoelzer 2013-02-15 18:13:01
@shoelzer這個想法是使用C++程序中的下標作爲輸入參數 – pQB 2013-02-15 18:17:27