Creating an array of dependent symbolic variable

8 ビュー (過去 30 日間)
Abinav
Abinav 2020 年 10 月 13 日
コメント済み: Abinav 2020 年 10 月 14 日
Hi,
I need to create 'N' equations based on user input 'N' which is a natural number.
Each equation is supposed to have a variable A which is a dependent on x. This 'A' term is different for each equation. Equation1 will have A1, equation2 will have A2 and so on.
I am creating this term using the expresion below.
A = sym('A', [1 N]);
This gives me symbolic variables A1, A2, A3... AN. But the problem is these terms are just symbolic variables and not dependent on x. So if I differentiate the equation with respect to x, these terms dissappear. If I use A(x) to create the variable (like a normal dependent variable), it returns a 1x1 symbolic function instead of 1xN symbolic variables.
A(x) = sym('A', [1 N]);
The above equation creates 1xN symbolic variables but the output is of type 1x1 symbolic function. Is there a way to isolate each term from this function or is there any other way to create a dependent variable array.
Thanks
  2 件のコメント
madhan ravi
madhan ravi 2020 年 10 月 13 日
What’s your application by your idea?
Abinav
Abinav 2020 年 10 月 13 日
I have 'N' sections and each section has an equation.
The equations have some common terms and different terms which depend on the boundary conditions. I am creating those equations through a loop and conditional statements which will be solved later. So, I need the variable 'A' to be an array so that I can add it to the equations while iterating through the loop.

サインインしてコメントする。

採用された回答

madhan ravi
madhan ravi 2020 年 10 月 13 日
編集済み: madhan ravi 2020 年 10 月 13 日
A(x) = str2sym(regexprep(char(A), '(\_?\d)+', '$0(x)'))
  3 件のコメント
madhan ravi
madhan ravi 2020 年 10 月 13 日
編集済み: madhan ravi 2020 年 10 月 13 日
A(x) = str2sym("A" +(1:N)+"(x)")
Wanted = formula(A)
Wanted(2)
[Too many edits in mobile is so painful ;)]
Abinav
Abinav 2020 年 10 月 14 日
Thanks. It worked.
Sorry to put you through that.

サインインしてコメントする。

その他の回答 (1 件)

Steven Lord
Steven Lord 2020 年 10 月 13 日
syms A [1 2]
eq1 = A(1)+2*A(2) == 42
eq2 = 3*A(1)-4*A(2) == 99
S = solve(eq1, eq2)
A1 = S.A1
A2 = S.A2
subs(eq1)
  1 件のコメント
Abinav
Abinav 2020 年 10 月 13 日
I think you didn't get my question.
I need to create an array of dependent symbolic varaible, not just symbolic variables. Something like
A = [A1(x) A2(x) A3(x)]

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeAssumptions についてさらに検索

製品


リリース

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by