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,

 Risposta accettata

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

4 Commenti

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'?
You don't need a loop
idx=A(:,30)>1
A(idx,30)=1
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 il 8 Lug 2015
Modificato: Stephen23 il 8 Lug 2015
Azzi Abdelmalek's solution is much more optimized than using a loop. This is how MATLAB works best, using basic code vectorization and indexing.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Centro assistenza e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by