Matrix with function handle: how to evaluate for a vector

Hello everyone,
Is there a way, if given a certain matrix with some function handles of n variables, to evaluate it with of vector giving values to those n variables?
Here's my exemple to make it clearer:
I have this matrix that is given has an input for a fucntion I'm coding:
J = @(x,y,z)[2*exp(2*x),0,-cos(x);-1,1,0;0,2*z,1]
And I have the vector:
X=[1;1;1] (I also tried writing it as X=[1,1,1])
And I would like to evaluate J with X in my code, but nothing I tried seems to work. Both J(X) and feval(J,X) return errors. Basically I would like to have the matrix J(1,1,1) without having to write it that way because I would like to directly take my matrix input to evaluate it with the vector input. Is there a way to do it?

 采纳的回答

Write J so that it has single argument syntax,
J = @(xyz) [2*exp(2*xyz(1)),0,-cos(xyz(1));-1,1,0;0,2*xyz(3),1];
X=[1;1;1];
J(X)
ans = 3×3
14.7781 0 -0.5403 -1.0000 1.0000 0 0 2.0000 1.0000

更多回答(1 个)

J3 = @(V)J(V(1),V(2),V(3))
However if you happen to be generating the J function using the Symbolic toolbox then see the Vars option for matlabFunction, in particular 'vars', {[x, y, z]} would cause the generated function to expect a row vector of values.

类别

帮助中心File Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by