Manipulation of certain matrix elements which meet a certain criterion

조회 수: 2(최근 30일)
Praneeth Lanka 2021년 8월 30일
댓글: KALYAN ACHARJYA 2021년 8월 30일
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.
댓글 수: 2표시숨기기 이전 댓글 수: 1
Praneeth Lanka 2021년 8월 30일
Hey, I have edited the question. Please check if you could understand the problem now.
Thanks

댓글을 달려면 로그인하십시오.

답변(1개)

KALYAN ACHARJYA 2021년 8월 30일
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.
댓글 수: 2표시숨기기 이전 댓글 수: 1
KALYAN ACHARJYA 2021년 8월 30일
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!

Translated by