solving two-variable matrix function

3 Ansichten (letzte 30 Tage)
Dmitry Solomatin
Dmitry Solomatin am 14 Dez. 2022
Kommentiert: Jiri Hajek am 14 Dez. 2022
Hi,
so assume I have a function like this:
f = [x(1) + x(2) ; x(2) * x(1)]
and my x = [2; -2]
how can I solve it? feval doesnt work for some reason ("Dimensions of arrays being concatenated are not consistent)

Antworten (1)

Jiri Hajek
Jiri Hajek am 14 Dez. 2022
Hi this can be done using inline function very efficiently like this:
fh=@(x,y)[x+y,x*y];
fh(2,-2)
ans = 1×2
0 -4
  2 Kommentare
Dmitry Solomatin
Dmitry Solomatin am 14 Dez. 2022
Thanks it now works, but for some reason this gives me a 1x3 matrix and it should only 1x2?
fh = @ (x,y) [2*x- 400*x*(-x^2+y) -2, 200 * (y-x^2)];
fh(2,-2)
Jiri Hajek
Jiri Hajek am 14 Dez. 2022
This is because Matlab interprets space within brackets as a separator of vector elements, same as a comma. You can eithertake away all the spaces or put your expressions into parentheses. That way, you can forget about the meaning of spaces:
fh = @ (x,y) [(2*x- 400*x*(-x^2+y) -2), (200 * (y-x^2))]
fh = function_handle with value:
@(x,y)[(2*x-400*x*(-x^2+y)-2),(200*(y-x^2))]
fh(2,-2)
ans = 1×2
4802 -1200

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by