How to chose random row which contain non-zero element

2 visualizaciones (últimos 30 días)
safaa
safaa el 5 de Abr. de 2017
Respondida: Andrei Bobrov el 5 de Abr. de 2017
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

Respuesta aceptada

Star Strider
Star Strider el 5 de Abr. de 2017
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

Más respuestas (1)

Andrei Bobrov
Andrei Bobrov el 5 de Abr. de 2017
another variant
inz = find(any(A ~= 0,2));
out = A(inz(randperm(numel(inz),1)),:);

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by