If function for matrix

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

 Risposta accettata

madhan ravi
madhan ravi il 12 Nov 2018
idx=a<b
c(idx)=1
c(~idx)=realmin

8 Commenti

Antoni Ho
Antoni Ho il 12 Nov 2018
it is actually works, but what is this idx actually? can i use it again on different variables?
madhan ravi
madhan ravi il 12 Nov 2018
Modificato: madhan ravi il 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 il 12 Nov 2018
Modificato: madhan ravi il 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 il 12 Nov 2018
Modificato: madhan ravi il 12 Nov 2018
Anytime :),yes exactly , if it worked make sure to accept the answer
Antoni Ho
Antoni Ho il 12 Nov 2018
Modificato: madhan ravi il 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
madhan ravi
madhan ravi il 12 Nov 2018
+1 @Torsten - an absolut genius!!
Antoni Ho
Antoni Ho il 12 Nov 2018
wow @Torsten real genius, it worked

Accedi per commentare.

Più risposte (0)

Prodotti

Release

R2018a

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by