如果我想对某些变量或x之类的向量使用real()
或abs()
,我必须写real(x)
或abs(x)
。在Mathematica中,有人可以使用Re[x]
或Re@x
。 Matlab中@
的等价物是什么?
我的意思是使用@
是Mathematica中[]
的简写符号。在Matlab中有这样的简写符号吗?
答案 0 :(得分:2)
正如另一个回答的那样;不,没有类似于你在Mathematica中找到的那些简写符号。但是,如果经常使用相同的函数组合,则可以创建可能提高可读性的匿名函数句柄。
combinedfun = @(x) myfun1(myfun2(x))
或者,如果您想要内置函数的组合:
absreal = @(x) abs(real(x))
在一个真实的项目中,我不会使用像这样的匿名函数,因为没有输入参数的控制等,但如果你想动态做一些计算它可能会很方便。
答案 1 :(得分:1)
您可以使用需要在arrayfun
x
如下所示:
arrayfun( @(y)abs(y), x )
然而,对于更简单的函数,只需在整个vector / variable / element上使用它:
abs(x)
答案 2 :(得分:1)
函数输入没有通用的简写符号。但是如果您的输入参数是字符串,那么您可以使用空格来分隔函数及其输入参数。所以
strcat('a', 'b')
与
相同strcat a b
如果参数存储在变量中,则不能使用它。