필터 지우기
필터 지우기

array of symbolic variables which are function of time

조회 수: 8 (최근 30일)
Jai Tushar
Jai Tushar 2017년 10월 25일
편집: Juraj Lieskovský 2021년 3월 4일
p = sym('p', [m 1]);
the above code gives me an array of symbolic variables, where m is the size of the matrix. However i want to create an array of symbolic variables which are function of time i.e. p1(t),p2(t),.... .

채택된 답변

Walter Roberson
Walter Roberson 2017년 10월 26일
There is no facility to do this. You will need to loop (or equivalent). For example in R2017b or later,
p = arrayfun(@(N) str2sym(sprintf('p%d(t)',N)), 1:5).'
  댓글 수: 3
Walter Roberson
Walter Roberson 2017년 10월 26일
ptemp = arrayfun(@(N) sym(sprintf('p%d(t)',N)), (1:m).', 'uniform', 0);
p = vertcat(ptemp{:});
You might get m warnings along the line of
Warning: Support of character vectors that are not valid variable names or define a number will be removed in a future release. To create symbolic
expressions, first create symbolic variables and then use operations on them.
Jai Tushar
Jai Tushar 2017년 10월 28일
편집: Jai Tushar 2017년 10월 28일
it worked!!
what does uniform and 0 do in the code?
Also,
ptemp = arrayfun(@(N) sym(sprintf('p%d(t)',N)), (1:2), 'uniform', 0); p = vertcat(ptemp{:});
A = [1 2; -1 1]; odes = diff(p) == A*p
Gives me the output as
odes =
diff(p1(t), t) == p1(t) + 2*p2(t)
diff(p2(t), t) == p2(t) - p1(t)
Why is odes not the funtion of time in the output. When i define p1(t),... and so on manually and define P = [p1; p2] then odes == diff(P) = A*p gives odes as a function of time i.e. odes(t) in the output. W

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

추가 답변 (2개)

Juraj Lieskovský
Juraj Lieskovský 2021년 3월 4일
편집: Juraj Lieskovský 2021년 3월 4일
Simple solution (using R2020b)
syms t
syms p(t) [m,1]

KSSV
KSSV 2017년 10월 26일
syms p1(t) p2(t) p3(t)
p = [p1 p2 p3]
  댓글 수: 1
Jai Tushar
Jai Tushar 2017년 10월 26일
편집: Jai Tushar 2017년 10월 26일
you are defining p1(t),... manually here.
I want my script to define them according to the size of the square matrix i enter. For example if i have a (user input) nxn matrix, then the script should define n such symbolic variables which are functions of time.

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

카테고리

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

Community Treasure Hunt

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

Start Hunting!

Translated by