2013-12-22 26 views

回答

1
  1. 做,在Matlab是使用一个中间变量的最佳方式:

    temp = matfunc(3); 
    temp(1,3) 
    
  2. 它可以直接做到这一点(没有一个中间变量),但不建议:笨重,不易可读。见here

  3. 另一种可能性是使用的功能的单元阵列(而不是矢量函数):

    matfunc = {@(x) x^2, @(x) cos(x), @(x) exp(x), @(x) 3*x}; 
    

    通过这种方法可以结合两个indexings(第一小区索引,以选择功能部件;然后输入参数):

    matfunc{3}(3) 
    
1

您正在尝试使用不正确的语法。你需要先评估功能,那么你就可以索引到结果变量:

A = matfunc(3); 
A(1,2) 

你可能不会,如果你想在一行中得到的一切就是这样,但这是Matlab的是如何工作的。如果你真的想把这在同一行,你可以定义一个辅助函数(另一条线路上)执行索引:

index = @(A,i,j)A(i,j); 
index(matfunc(3),1,2) 
+0

+1帮助函数的想法 –

0

最好是写 [A] = matfunc(输入); a(1,3)%这给你输出“matfunc(输入)”的“a”的元素1,3