Find a random position in a vector where the value is zero

1 visualización (últimos 30 días)
I have a vector with mix of complex numbers and zeros. I have to find a random position in the vector where the value is zero.
For example, in the given A matrix I should get any of the underlined value's vector position
A = [a b c 0 x 0 0 0 r 0 0 0 y q 0 p 0];

Respuesta aceptada

Scott MacKenzie
Scott MacKenzie el 25 de Jul. de 2021
Editada: Scott MacKenzie el 25 de Jul. de 2021
% test data (includes zeros and imaginary numbers)
A = [1i 4/1j 7 0 99 0 0 0 8*1j 0 0 0 8 9 0 -7 0];
% find indices of zeros in A
zeroIdx = find(A==0);
% pick one of the zeros at random (display index)
randomIdx = zeroIdx(randi(length(zeroIdx),1))
randonIdx = 6

Más respuestas (1)

Chunru
Chunru el 25 de Jul. de 2021
% Generate some randome data with zeros
n = 10;
a = randn(1, n);
k = randperm(n, round(n/2));
a(k) = 0;
a
a = 1×10
0 0 -1.5217 0 -1.5143 -0.0588 0 -0.0439 0 -1.0513
% find zeros
idx = find(a==0);
% randomly pick from idx
pick = randperm(length(idx), 1)
pick = 4
a(idx(pick))
ans = 0

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