MATLAB Answers

How can I use conditional operators to only obtain values from an array which satisfies the condition?

1 view (last 30 days)
Sanjeeve Thyriar
Sanjeeve Thyriar on 24 Aug 2021
Answered: Srijith Kasaragod on 30 Aug 2021
I have an array A which contains a list of numbers. I have an array m which is empty at the start.
When the for loop is executed, a random number from array A is chosen and assigned to variable B. The number associated with variable B is added to the empty array m and the process repeats 10 times.
What I want to do is have an array which only contains the values which satisfy the condition includes number that are lower than 5 and higher than 14 (non-inclusive). I tried using conditional operators but it does not seem to be working the final_result variable always ends up with an empty array, even on the occasion where there are numbers in the m array which satisy the conditions specified. Is there any other way I can do this?
A = [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16];
m = [];
for i = 1:10
B = randsample(A,1);
m(end+1) = B;
final_result = m(m < 5 & m > 14);

Answers (1)

Srijith Kasaragod
Srijith Kasaragod on 30 Aug 2021
As per my understanding, final result holds values in m that are less than 5 or greater than 14. Executing '&' operation will return zero elements as no number can be both less than 5 and greater than 14. Specifying final_result as the following will give the required output:
final_result= m(m < 5 | m > 14)
More information on logical operations can be found here.


Community Treasure Hunt

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

Start Hunting!