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

1 view (last 30 days)
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;
end
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.

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!