Cannot use besselh as function handle
이전 댓글 표시
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
Walter Roberson
2020년 9월 11일
Sigh, yet another function that matlabFunction() messes up on :(
Johnes Ricardo
2020년 11월 5일
편집: Johnes Ricardo
2020년 11월 10일
I have the same problem, I do not know whats happens, but I used [ besselj(n, x) + 1i*bessely(n, x) ] instead.
답변 (1개)
David Goodmanson
2020년 9월 11일
0 개 추천
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
Walter Roberson
2020년 11월 5일
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.
카테고리
도움말 센터 및 File Exchange에서 Linear Algebra에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!