2014-10-09 67 views
0

我有一個矩陣,它包含N個條目,每個條目有M行。每行包含0和1。我想創建一個大小相同的第二個矩陣,但是在每一行中只剩下一個1,其他每個值都應該爲0.應該隨機選擇哪個值爲1。保持矩陣的隨機值

例如爲:

0 1 1 0 1 
1 1 0 0 1 
0 0 1 1 0 
-> 
0 1 0 0 0 
1 0 0 0 0 
0 0 0 1 0 

回答

0

閱讀的find文檔和randperm

%//preallocate the output matrix 
out = zeros(size(a)); 

%for each row, take a random sample from the indices holding value 1  
for i = 1:size(a,1) 
    temp2 = find(a(i,:)); 
    out(i,temp2(randperm(numel(temp2))(1))) = 1; 
end 

關注工作中的代碼here