converting a multiple input function to a vector input function

조회 수: 6 (최근 30일)
Trevor
Trevor 2015년 6월 17일
댓글: Walter Roberson 2015년 6월 18일
My question is similar to this one
I have a vector of symbolic expressions called "xdot_sym". Following the advice of the thread above I convert this function to a vector input function by the following
xdot_fun = matlabFunction(xdot_sym);
xdot_fun_vec = @(x) xdot_fun(x(1),x(2),x(3),x(4),x(5),x(6),x(7),x(8),x(9),x(10),x(11),x(12));
This works fine. However the length of my vector xdot_sym often changes. So I am looking for a way to define xdot_fun_vec for a variable number of input arguments (instead of just 12).

채택된 답변

Walter Roberson
Walter Roberson 2015년 6월 18일
Read "Specify Input Arguments for Generated Function" in http://www.mathworks.com/help/symbolic/matlabfunction.html
So it would be like
matlabFunction(xdot_sym, {[p q s ...]})
where p q s ... is the list of variable names as they appear in xdot_sym; the first of them will be mapped to the first column of the single input, the second will be mapped to the second column of the single input, and so on.
  댓글 수: 2
Trevor
Trevor 2015년 6월 18일
This works great although isn't it necessary to include 'Vars' in your example code?
Walter Roberson
Walter Roberson 2015년 6월 18일
Yes, 'Vars' would be needed,
matlabFunction(xdot_sym, 'Vars', {[p q s ...]})

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Symbolic Math Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by