Anonymous Functions with Multiple Inputs ignore some inputs

6 Ansichten (letzte 30 Tage)
Jun Liang
Jun Liang am 6 Jun. 2022
Kommentiert: Jun Liang am 18 Jun. 2022
For example, the function is: , then
But I want to do this: or , and so on
y=@(x,theta) x.^theta
y(2,3)=8 % 2^3=8, succeed
% But I want is :
y(2, theta) % My ideal output is: 2.^theta but it doesn't work
y(x, 2) % I need is: x.^2
hope I made it clear enough....
  3 Kommentare
Walter Roberson
Walter Roberson am 6 Jun. 2022
Symbolic is good for this purpose.
In the special case where you do not capture any variables in the anonymous function handle, you could use formula() on the handle, and do text processing to replace all references to the parameter with the numeric constant, and strip the name out of the @() section, and then use str2func. Symbolic toolbox is much more convenient though... especially if you need to get right the possibility that the anonymous function has an anonymous function with the same parameter name
@(x,y) y.^integral(@(x)x.^2, 0,x)
The @(x)x.^2 should not be replaced when x is being replaced with something constant in the anonymous function...
Jun Liang
Jun Liang am 18 Jun. 2022
Thanks, I have used symbolic toolbox to solve this problem.
code:
syms phi(x, theta)
phi(x, theta) = x.^theta;
% phi(2,theta) or phi(x,2) are working

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Kategorien

Mehr zu Mathematics 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