Cannot use besselh as function handle

1 visualización (últimos 30 días)
wbriand
wbriand el 10 de Sept. de 2020
Editada: Johnes Ricardo el 10 de Nov. de 2020
Hello everyone,
I need to convert a symbolic expression containing besselh functions to MATLAB function handle but I get an error message.
Here is a sample of code:
syms nu z
hankel = symfun(besselh(nu,z),[nu,z]) ;
F = matlabFunction(hankel(nu,z)) ;
It works well but if try to use the function F, I get this messsage:
Undefined function or variable 'besselH1'.
Indeed, the F function is defined as:
@(nu,z)besselH1(nu,z)
I use MATLAB R2019a.
What can I do?
  2 comentarios
Walter Roberson
Walter Roberson el 11 de Sept. de 2020
Sigh, yet another function that matlabFunction() messes up on :(
Johnes Ricardo
Johnes Ricardo el 5 de Nov. de 2020
Editada: Johnes Ricardo el 10 de Nov. de 2020
I have the same problem, I do not know whats happens, but I used [ besselj(n, x) + 1i*bessely(n, x) ] instead.

Iniciar sesión para comentar.

Respuestas (1)

David Goodmanson
David Goodmanson el 11 de Sept. de 2020
Hi wbriand,
any reason you can't just define
F = @(nu,z) besselh(nu,1,z)
or
F = @(nu,z) besselh(nu,2,z)
whichever one you want?
  1 comentario
Walter Roberson
Walter Roberson el 5 de Nov. de 2020
The problem is that if you have an expression in which besselh is one component, and you matlabFunction in order to generate code that can be used numerically, then matlabFunction messes up and generates a reference to a function that does not exist at the MATLAB level.
You could deliberately create a real function withthe Rogue name that interfaced back to besselh though.

Iniciar sesión para comentar.

Categorías

Más información sobre Dynamic System Models en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by