Matlab 如何访问x的矩阵函数中的数组? 让我们考虑如下(向量或矩阵)函数: matfunc=@(x)[x^2 cos(x) e^x 3*x];

Matlab 如何访问x的矩阵函数中的数组? 让我们考虑如下(向量或矩阵)函数: matfunc=@(x)[x^2 cos(x) e^x 3*x];,matlab,function,matrix,Matlab,Function,Matrix,我想访问一个指定的数组,比如x=3时的(1,3)。 如何在MATLAB中实现这一点? 我试过: matfunc(3)(1,3) (matfunc(3))(1,3) matfunc(3,1,3) 但它不起作用 在Matlab中实现这一点的最佳方法是使用中间变量: temp = matfunc(3); temp(1,3) A = matfunc(3); A(1,2) 可以直接执行(没有中间变量),但不建议这样做:繁琐且难以阅读。看 另一种可能性是使用函数的单元数组(而不是向量函数): 通过这

我想访问一个指定的数组,比如x=3时的(1,3)。 如何在MATLAB中实现这一点? 我试过:

matfunc(3)(1,3)
(matfunc(3))(1,3)
matfunc(3,1,3)
但它不起作用

  • 在Matlab中实现这一点的最佳方法是使用中间变量:

    temp = matfunc(3);
    temp(1,3)
    
    A = matfunc(3);
    A(1,2)
    
  • 可以直接执行(没有中间变量),但不建议这样做:繁琐且难以阅读。看

  • 另一种可能性是使用函数的单元数组(而不是向量函数):

    通过这种方法,您可以将两个索引(首先是选择函数组件的单元索引;然后是输入参数)组合起来:


  • 您试图使用错误的语法。您需要首先计算函数,然后才能将其索引到结果变量中:

    temp = matfunc(3);
    temp(1,3)
    
    A = matfunc(3);
    A(1,2)
    
    如果你想把所有的东西都放在一条线上,你可能不会喜欢这样,但是Matlab就是这样工作的。如果确实要将其放在一行上,可以定义一个执行索引的辅助函数(在另一行上):

    index = @(A,i,j)A(i,j);
    index(matfunc(3),1,2)
    
    最好的方法是写作 [a] =matfunc(输入); a(1,3)%a的元素1,3是“matfunc(输入)”的输出