How does the equality operator work?

How does the equality operator work? - Messages

#1 Posted: 6/18/2012 2:21:07 AM
Stuart Bruff

Stuart Bruff

0 likes in 7 posts.

Group: User

Hello,

How is the equality (ctl-=) operator supposed to work? I get ([1]=1)=1 but ([1])=2; the latter I expect, but I am surprised that a matrix is equal to a scalar, even though it is just a single element matrix.

Is there a way of programmatically distinguishing between a scalar and an array? I know there's no IsScalar or IsArray function. I've seen the workaround for using num2str & mat and I've written a function

IsArray(x):=
|n:=findstr(num2str(x),"mat" )
|n<>-1

(why doesn't IsArray(x):=findstr(num2str(x),"mat" )<>-1 work?)

, but this would appear to impose quite an evaluation overhead for large matrices. I was hoping to use x=stack(x) to check if x was an array, hence the purpose of my original question.

Stuart
  • New Posts New Posts
  • No New Posts No New Posts