hi there
i need to do this if function
if a <= b
c = 1
else
c = realmin
but, a and b is a matrix (30x30)
and apparently i got only 1 value of c,
i want a the if function compare every cell of matrix a and b,
and gives me value in 30x30 matrix too
please help, thank you

 Accepted Answer

idx=a<b
c(idx)=1
c(~idx)=realmin

8 Comments

it is actually works, but what is this idx actually? can i use it again on different variables?
madhan ravi
madhan ravi on 12 Nov 2018
Edited: madhan ravi on 12 Nov 2018
use it is a logical index which stores the index of the variables when the condition is satisfied , yes you can use it on different variables also changing the variable name in the condition. see logical indexing for further explanation
Antoni Ho
Antoni Ho on 12 Nov 2018
Edited: madhan ravi on 12 Nov 2018
thank you for your help
so the code is like this?
idx=a<b
c(idx)=1
c(~idx)=realmin
idx=d<e
f(idx)=1
f(~idx)=realmin
madhan ravi
madhan ravi on 12 Nov 2018
Edited: madhan ravi on 12 Nov 2018
Anytime :),yes exactly , if it worked make sure to accept the answer
Antoni Ho
Antoni Ho on 12 Nov 2018
Edited: madhan ravi on 12 Nov 2018
now i got this problem, i have (30x8 matrix). and the result i got from idx is 1 x 240 matrix. do you know how to make them 30 x 8 (i dont use normal matrix operation but elementwise only operation)
madhan ravi's reply : post a separate question by providing all the necessary details
c = ones(size(a))
idx = a>=b
c(idx) = realmin
+1 @Torsten - an absolut genius!!
wow @Torsten real genius, it worked

Sign in to comment.

More Answers (0)

Categories

Products

Release

R2018a

Tags

Asked:

on 12 Nov 2018

Commented:

on 12 Nov 2018

Community Treasure Hunt

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

Start Hunting!