Creating a Simbolic vector and setting assumptions on it

1 回表示 (過去 30 日間)
Francesco Giuseppe Fornari
Francesco Giuseppe Fornari 2019 年 8 月 8 日
Hi,
I'm trying to build a symbolic vector with variable dimension N, and I would like it to be real...
I managed to build the vector with the desired lenght throug str2sym, but I don't know how to set assumption "real" on its variables.
(I would like to use this vector for a linear system).
stot2=[' '];
for i=1:N
A = i;
s1=sprintf(' u%d, ',A);
s2=sprintf(' v%d, ',A);
s3=sprintf(' w%d ',A);
stot2=strcat(stot2, s1, s2, s3);
end
U1=['[' stot2 ']'];
U=str2sym(U1)
Thanks for any help!

採用された回答

Walter Roberson
Walter Roberson 2019 年 8 月 12 日
u = sym('u', [1 N], 'real');
v = sym('v', [1 N], 'real');
w = sym('w', [1 N], 'real');
U = [u, v, w];
  3 件のコメント
madhan ravi
madhan ravi 2019 年 8 月 13 日
編集済み: madhan ravi 2019 年 8 月 13 日
reshape([u;v;w],1,[])
Francesco Giuseppe Fornari
Francesco Giuseppe Fornari 2019 年 8 月 13 日
thanks, it works perfectly!

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

その他の回答 (1 件)

Divya Gaddipati
Divya Gaddipati 2019 年 8 月 12 日
You can declare assumptions on symbolic variables using the assume function from the Symbolic Math Toolbox. For more information on how to use this function, refer to this link.
In your code, since “U” is a sym object, you can directly loop over U and set each of the variable to real.
for i = 1 : length(U)
assume(U(i), 'real');
end
  1 件のコメント
Walter Roberson
Walter Roberson 2019 年 8 月 12 日
Yes, but there is no need to loop:
assume(U, 'real');

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

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!

Translated by