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

 采纳的回答

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

8 个评论

it is actually works, but what is this idx actually? can i use it again on different variables?
madhan ravi
madhan ravi 2018-11-12
编辑:madhan ravi 2018-11-12
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
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 2018-11-12
编辑:madhan ravi 2018-11-12
Anytime :),yes exactly , if it worked make sure to accept the answer
Antoni Ho
Antoni Ho 2018-11-12
编辑:madhan ravi 2018-11-12
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

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Multidimensional Arrays 的更多信息

产品

版本

R2018a

标签

Community Treasure Hunt

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

Start Hunting!

Translated by