loop for removing highest value until specific value is reached
2 views (last 30 days)
Show older comments
for exmaple,
for 10x10 matrix A
i want to make loop which removes highest element until sum of A is less than 20
and i want to know each removed element's position
i think 'while-loop' is needed
( I only know finding the first highest value using 'for-loop')![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1069495/image.jpeg)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1069495/image.jpeg)
0 Comments
Accepted Answer
Adam Danz
on 18 Jul 2022
A = randi(13,10);
while sum(A,'all','omitnan')>20
[~,idx] = max(A(:),[],'omitnan');
A(idx) = NaN;
end
isRemoved = isnan(A)
sum(A,'all','omitnan')
More Answers (1)
David Hill
on 18 Jul 2022
[b,idx]=sort(A(:));
IDX=idx(cumsum(b)>=20);%linear index of each of the removed element's position
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!