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