Can I rename the dependencies of an anonymous function?

조회 수: 1 (최근 30일)
ALVARO
ALVARO 2023년 4월 22일
댓글: Star Strider 2023년 4월 22일
I am writing an FEA code trying to minimize memory allocation and improve speed in MATLAB. For that purpose I want to declare my element stiffness matrix using a combination of anonymous functions. Although I have been successful, at the time of evaluation I need too many input arguments, and it makes sense to group them in vectors to improve readability. Below I expplain it a bit more.
Although I could declare my anonymous functions as:
f = @(x) x(1)^2 + x(2)^2;
Because I am using symbolic differentiation I need to declare as:
f = @(x,y) x^2 + y^2;
syms x y real
g = matlabFunction([diff(f,x);diff(f,y)]);
My question is if it is possible to rename the dependencies of " g " after the derivative operation is done. I obtain "g" as a function of "x" and "y", but I would like to transform it into a function of
Finally, it would be nice if the function depends on x and y, even though the derivative does only depend on one of them, let's say , that you can still call it as

채택된 답변

Star Strider
Star Strider 2023년 4월 22일
I am not certain what you want to do, however it seems that you want to compbine both of the arguments into a single vector.
syms x y real
f(x,y) = x^2 + y^2;
g = matlabFunction(f, 'Vars',{[x,y]})
g = function_handle with value:
@(in1)in1(:,1).^2+in1(:,2).^2
The two variables are now combined into one row vector called ‘in1’ so that ‘x’ is ‘in1(:,1)’ and ‘y’ is ‘in1(:,2)’.
.
  댓글 수: 3
ALVARO
ALVARO 2023년 4월 22일
Thank you both, this is an absolute artwork
Star Strider
Star Strider 2023년 4월 22일
As always, my (our) pleasure!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

제품


릴리스

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by