Manipulation of certain matrix elements which meet a certain criterion

2 views (last 30 days)
Praneeth Lanka on 30 Aug 2021
Commented: KALYAN ACHARJYA on 30 Aug 2021
Let's say I have a matrix of size 100X100. I wish to manipulate certain elements of the Matrix which are in Rows 10 to 15 and coulmns 11 to 13, which are negative numbers. I donot wish to change the elements which are negative outside the specified Rows and Columns.
Is it possible to do this without creating any new variable ? by using Logical Indexing?
Edit: I have generalized the question, but here is where I intend to implement the solution provided. I have a 15X16 matrix in which there are NaN values in random positions of the matrix. I would like to set these NaN values to 0s' in only the sub-matrix formed by Rows 2 to 15 and Columns 2 to 16. So in this case I would be required to use the isnan function.
Praneeth Lanka on 30 Aug 2021
Hey, I have edited the question. Please check if you could understand the problem now.
Thanks

KALYAN ACHARJYA on 30 Aug 2021
mat=randi([-5,5],[100,100]); % Sample Matrix
[r,c]=find(mat(10:15,11:13)<0==1); % Get the indices
mat(9+r,10+c)=x; % x Manupulate any Value
Please note there may be more easier solution.
KALYAN ACHARJYA on 30 Aug 2021
Yes you can get that ...
idx=mat(10:15,11:13)<0;
But during manipulation, you may have to use groups of rows & columns number.

R2021a

Community Treasure Hunt

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

Start Hunting!