Info

此问题已关闭。 请重新打开它进行编辑或回答。

How to ensure that dynamically create symbolically variables are real?

1 次查看(过去 30 天)
Hello,
I'm creating symbolic variables dynamically and I wanted to ensure that the symbolic variables are real.
I have the code
clear all
index = {'1'};
List = {'A','B','C'};
A=sym(strcat(List,index))
How can I modify this to make sure that the symbolic variables stored in A are real? I have tried changing to A=sym(strcat(List,index),'real'), but this doesn't work.
Thank you, Kevin
  1 个评论
Kevin Bachovchin
Kevin Bachovchin 2014-2-14
编辑:Kevin Bachovchin 2014-2-14
Al, B1, and C1 can be declared to be real syms using the following syntax.
syms A1 B1 C1 real
A = [A1 B1 C1]
It seems to be there should be some equivalent way when declaring the syms dynamically.

回答(2 个)

Azzi Abdelmalek
Azzi Abdelmalek 2014-2-14
I don't think you can, for example force the variable A1 to be real. If
A1=5+j
Then
index = {'1'};
List = {'A','B','C'};
A=sym(strcat(List,index))
out=subs(A(1))
The result is a complex number
  5 个评论
Azzi Abdelmalek
Azzi Abdelmalek 2014-2-14
s=regexp('A':'Z','.','match')
n=3
a=strjoin(strcat(s(1:n),'1'))
eval(['syms ' a ' real'])
eval(['A=[' a ']'])
Kevin Bachovchin
Kevin Bachovchin 2014-2-14
I can't assume that the list is going to be alphabetic either. Basically the list can be whatever cell array the user inputs. Is there a way to do something like
index = {'1'};
List = {'A','B','C'};
A=sym(strcat(List,index))
out=subs(A(1))
and just ensure the symbolic variables are real for the purposes of symbolic math that comes later.

Kevin Bachovchin
Kevin Bachovchin 2014-2-20
clear all
index = {'1'};
List = {'A','B','C'};
A=sym(sym(strcat(List,index)),'real')
  2 个评论
Kevin Bachovchin
Kevin Bachovchin 2014-2-21
It seems to work fine even when the variables names in List have different number of characters.
clear all
index = {'1'};
List = {'AR','BRR','C'};
A=sym(sym(strcat(List,index)),'real')

此问题已关闭。

标签

Community Treasure Hunt

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

Start Hunting!

Translated by