Filter löschen
Filter löschen

array of symbolic variables which are function of time

8 Ansichten (letzte 30 Tage)
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),.... .

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 26 Okt. 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 Kommentare
Walter Roberson
Walter Roberson am 26 Okt. 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 am 28 Okt. 2017
Bearbeitet: Jai Tushar am 28 Okt. 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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Juraj Lieskovský
Juraj Lieskovský am 4 Mär. 2021
Bearbeitet: Juraj Lieskovský am 4 Mär. 2021
Simple solution (using R2020b)
syms t
syms p(t) [m,1]

KSSV
KSSV am 26 Okt. 2017
syms p1(t) p2(t) p3(t)
p = [p1 p2 p3]
  1 Kommentar
Jai Tushar
Jai Tushar am 26 Okt. 2017
Bearbeitet: Jai Tushar am 26 Okt. 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.

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by