matrix with different randperm rows
조회 수: 5 (최근 30일)
이전 댓글 표시
Hi,
Say I have vector of N integers, 1 through N. Is there a quick way, without loops, to create a matrix where each row is a different randperm of the vector? My N can get large (up to 100).
Thanks
댓글 수: 0
채택된 답변
추가 답변 (3개)
Guillaume
2014년 9월 17일
cell2mat(arrayfun(@(dummy) randperm(n), 1:m, 'UniformOutput', false)');
Whether or not that can be said to be without a loop is debatable as arrayfun is effectively looping over the array 1:m
댓글 수: 0
Mikhail
2014년 9월 17일
댓글 수: 4
Image Analyst
2014년 9월 17일
In what universe, or decade, is 100 considered large? You actually mean 100, right, like ten times ten, not 100 million or 100 billion or something?
Joseph Cheng
2014년 9월 17일
Well there is a randperm() function that will give you a random permuation. How to get it as a MxN matrix without a loop will take some more time to think about it.
댓글 수: 1
Joseph Cheng
2014년 9월 17일
편집: Joseph Cheng
2014년 9월 17일
ok well it is possible to do it without a loop in 2ish lines. Use the function arrayfun() or cellfun() on an array of N*ones(M,1).
참고 항목
카테고리
Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!