我有此矢量:在矢量中創建隨機值Matlab
人口= [3,5,0,5,10,50,0,1];
而且我需要用1和4之間的隨機值填充此向量,只有向量中有0值。
我該怎麼辦呢?
編輯:有一種方法可以使用randperm函數來完成它嗎?
我有此矢量:在矢量中創建隨機值Matlab
人口= [3,5,0,5,10,50,0,1];
而且我需要用1和4之間的隨機值填充此向量,只有向量中有0值。
我該怎麼辦呢?
編輯:有一種方法可以使用randperm函數來完成它嗎?
首先,發現零個元素,那麼生成的隨機值,然後替換這些元素:
Population = [3, 5, 0, 2, 0, 5, 10, 50, 0, 1];
idx = find(Population==0);
Population(idx) = 3 * rand(size(idx)) + 1;
如果您需要整數(沒有指定),剛輪在最後聲明中產生的隨機數,象這round(3*rand(size(idx))+1)
;或使用randi
(正如@OmG的回答中所建議的):randi([1,4], size(idx))
。
嗨! Find(population == 0)將返回一個數組的索引值? –
@Jokesonme,是的,在你的例子中,它會返回vector:''[3,5,9]''。 – randomir
您可以使用下面的代碼:
ind = find(~Population); % find zero places
Population(ind) = randi(4,1,length(ind)); % replace them with a random integer
請看一看:?當有人回答我的問題,我應該怎麼辦(https://stackoverflow.com/help/someone-answers) – randomir