将1xn数组传递给函数句柄而不是Matlab的单个值?

时间:2014-11-25 09:57:47

标签: arrays matlab handlers

我试图找到一种方法将1xn数组传递给函数处理程序,其中n是函数中变量的数量,所以让我假设我这样声明一个处理程序:

U = @(x, y) x^2 + 2*y^2

并插入:

U(1, 2)
ans = 
     9

我有什么方法可以做类似的事情吗?

a = [1, 2]
U(a) 
ans =
     9

1 个答案:

答案 0 :(得分:3)

是的,你可以;

U = @(x, y) x^2 + 2*y^2;
a = {1, 2};
U(a{:})

当您展开单元格{:}的内容时,它会扩展为单元格中存储的单独值。这与myMatrix(...)myCell(...)不同,{{1}}或{{1}}都生成原始集的子集(无论是单元格还是矩阵)。