还有其他方法可以在Matlab中应用函数吗?

时间:2015-01-08 13:42:32

标签: matlab function

如果我想对某些变量或x之类的向量使用real()abs(),我必须写real(x)abs(x)。在Mathematica中,有人可以使用Re[x]Re@x。 Matlab中@的等价物是什么? 我的意思是使用@是Mathematica中[]的简写符号。在Matlab中有这样的简写符号吗?

3 个答案:

答案 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

如果参数存储在变量中,则不能使用它。