array of symbolic variables which are function of time

8 visualizaciones (últimos 30 días)
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),.... .

Respuesta aceptada

Walter Roberson
Walter Roberson el 26 de Oct. de 2017
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 comentarios
Walter Roberson
Walter Roberson el 26 de Oct. de 2017
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 el 28 de Oct. de 2017
Editada: Jai Tushar el 28 de Oct. de 2017
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

Iniciar sesión para comentar.

Más respuestas (2)

Juraj Lieskovský
Juraj Lieskovský el 4 de Mzo. de 2021
Editada: Juraj Lieskovský el 4 de Mzo. de 2021
Simple solution (using R2020b)
syms t
syms p(t) [m,1]

KSSV
KSSV el 26 de Oct. de 2017
syms p1(t) p2(t) p3(t)
p = [p1 p2 p3]
  1 comentario
Jai Tushar
Jai Tushar el 26 de Oct. de 2017
Editada: Jai Tushar el 26 de Oct. de 2017
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.

Iniciar sesión para comentar.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by