How can I use conditional operators to only obtain values from an array which satisfies the condition?
1 view (last 30 days)
Show older comments
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);
1 Comment
Simon Chan
on 24 Aug 2021
I think you are looking for numbers that are lower than 5 OR higher than 14.
Answers (1)
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)
0 Comments
See Also
Categories
Find more on Loops and Conditional Statements 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!