Find a random position in a vector where the value is zero
6 views (last 30 days)
Show older comments
Murali Krishna AG
on 25 Jul 2021
Edited: Scott MacKenzie
on 25 Jul 2021
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];
0 Comments
Accepted Answer
Scott MacKenzie
on 25 Jul 2021
Edited: Scott MacKenzie
on 25 Jul 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))
0 Comments
More Answers (1)
Chunru
on 25 Jul 2021
% Generate some randome data with zeros
n = 10;
a = randn(1, n);
k = randperm(n, round(n/2));
a(k) = 0;
a
% find zeros
idx = find(a==0);
% randomly pick from idx
pick = randperm(length(idx), 1)
a(idx(pick))
0 Comments
See Also
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!