0
我想使用randsample來從矩陣中採樣值,但我希望採樣值在矩陣中被替換爲零。我該怎麼做/是否有這個功能?MATLAB - 採樣隨機值
我想使用randsample來從矩陣中採樣值,但我希望採樣值在矩陣中被替換爲零。我該怎麼做/是否有這個功能?MATLAB - 採樣隨機值
我想你不想使用randsample
,因爲你有一個給定的矩陣(這裏是M
)。您可以使用datasample
來隨機抽樣現有數據。然後,您可以使用datasample
(此處爲ind
)的第二個輸出來尋址原始矩陣M
中的條目並輕鬆覆蓋它們。
在下面的示例中操作第二個維度並選擇列。如果你想要選擇行,把第三個參數datasample
更改爲1(這是Matlab沒有給出第三個參數時的默認行爲)。
% create random data
M = randi(20,4,10)
% randomly sample data
[Y,ind] = datasample(M,4,2)
% write 0 for the sampled data in original matrix
M(:,ind) = 0
這是結果:
M =
20 14 6 18 1 9 4 15 11 11
11 5 9 20 8 19 2 9 3 13
20 20 16 4 1 16 13 11 4 9
15 1 4 12 20 18 4 19 11 13
Y =
18 4 15 14
20 2 9 5
4 13 11 20
12 4 19 1
ind =
4 7 8 2
M =
20 0 6 0 1 9 0 0 11 11
11 0 9 0 8 19 0 0 3 13
20 0 16 0 1 16 0 0 4 9
15 0 4 0 20 18 0 0 11 13
初始化rng(4)
。
用'0'代替數字後,是否要允許採樣器再次選擇'0'?請提供一些示例輸入和輸出數據 – Dan
我已經知道了,Matt的答案有用,謝謝。 –