multiply all numbers above a threshold in a matrix by n, but only on certain indices, and keep original matrix dimension

2 views (last 30 days)
Hi,
I want to multiply all numbers above a threshold in a matrix by n, but only on certain indices, and keep the original matrix dimension
so consider I have a 201x201 matrix, but only want to do my multiplication where y=1:115, I can do something like
matrix = rand(201,201);
matrix(matrix(:, 115) > 0.5) = 0;
which works great; but I want to something like
matrix(matrix(:, 115) > 0.5) = matrix .* 100;
but i can't of course because because the left and right sides have a different number of elements
I know this is super simple but please help me because I have a mind block
I think I need to make a logical mask, or something - but I can't think :-(

Accepted Answer

Jan
Jan on 15 Apr 2019
Edited: Jan on 15 Apr 2019
index = (matrix(:, 115) > 0.5); % logical mask
matrix(index, 115) = matrix(index, 115) * 100;

More Answers (0)

Community Treasure Hunt

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

Start Hunting!