hi,
I have a matrix say 200*30. I need to limit the elements of 29th and 30th columns with different constraints. how can I do that?
thanks,

 채택된 답변

Azzi Abdelmalek
Azzi Abdelmalek 2015년 7월 8일

0 개 추천

Example
A=rand(200,30)
idx=A(:,29)>0.5 & A(:,30)<0.7
out=A(idx,:)

댓글 수: 4

mehrdad asadi
mehrdad asadi 2015년 7월 8일
thanks,
but I actually need to modify the elements!
for example if A(:,30)>1, then I should replace it with 1.
is it possible not to use 'if'?
Azzi Abdelmalek
Azzi Abdelmalek 2015년 7월 8일
편집: Azzi Abdelmalek 2015년 7월 8일
You don't need a loop
idx=A(:,30)>1
A(idx,30)=1
mehrdad asadi
mehrdad asadi 2015년 7월 8일
thank you A.Abdelmalek,
I did this, but because I have 4 constraints, and it should be repeated many times in a for loop, it seems it's not that much optimized! thanks anyway, right now, this is the only solution that crosses the mind.
Stephen23
Stephen23 2015년 7월 8일
편집: Stephen23 2015년 7월 8일
Azzi Abdelmalek's solution is much more optimized than using a loop. This is how MATLAB works best, using basic code vectorization and indexing.

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

질문:

2015년 7월 8일

편집:

2015년 7월 8일

Community Treasure Hunt

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

Start Hunting!

Translated by