How to chose random row which contain non-zero element
조회 수: 2 (최근 30일)
이전 댓글 표시
For example ;
A=[ 0 0 0 0 ;
0 0 0 0;
0 0 0 0;
0 0 0 8;
0 0 0 0;
0 0 8 11;
0 0 0 0;
0 0 11 14;
11 0 0 14;
0 0 0 0;
0 8 9 14;
0 9 0 0;
0 9 0 14;
8 9 11 0;
0 0 0 0;]
If all row element zero for example row 15 I want to take another row random which contain non zero element
댓글 수: 0
채택된 답변
Star Strider
2017년 4월 5일
I would first find the non-zero rows, then choose randomly amongst them:
nzr = find(sum(A,2)>0); % Indices Of Non-Zero Rows
random_nz_row = nzr(randi(length(nzr), 1)) % Choose One Non-Zero Row
nz_row = A(random_nz_row,:) % Display Random Non-Zero Row
댓글 수: 0
추가 답변 (1개)
Andrei Bobrov
2017년 4월 5일
another variant
inz = find(any(A ~= 0,2));
out = A(inz(randperm(numel(inz),1)),:);
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!