Convert a symbolic equation to a vector equation

조회 수: 9 (최근 30일)
Daniel Wells
Daniel Wells 2011년 9월 8일
댓글: Walter Roberson 2018년 11월 7일
I would like to be able to input a multi-variate symbolic equation into MATLAB and convert that equation into a function which takes in a vector. I know that matlabFunction() can turn this symbolic function into a function handle, but that equation does not take in a vector, but rather a list of inputs. -Is there a command which will convert my symbolic expression to a vector equation? -If not, is there a way to convert the function handle returned by matlabFunction() to one that takes in a vector?

채택된 답변

Walter Roberson
Walter Roberson 2011년 9월 8일
Start with
S = vectorize(char(EXPRESSION))
To turn that in to an anonymous function depends upon your MATLAB version. If you have a very new version, you can use
f = str2func(['@(x) ' S]);
The (x) should be whatever list of symbolic names is in your symbolic expression.
If you do not have one of the very newest versions, then you:
eval(['f = @(x) ' S]);
Yes, ugly and evil, but we have to play the hand we are dealt.
  댓글 수: 2
Daniel Shub
Daniel Shub 2011년 11월 28일
I think f = eval(['@(x) ' S]); might be a bit safer and easier to deal with since you are not poofing a variable into the workspace.
Walter Roberson
Walter Roberson 2018년 11월 7일
Good point, Daniel.

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Assumptions에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by