Info

This question is closed. Reopen it to edit or answer.

How to ensure that dynamically create symbolically variables are real?

1 view (last 30 days)
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 Comment
Kevin Bachovchin
Kevin Bachovchin on 14 Feb 2014
Edited: Kevin Bachovchin on 14 Feb 2014
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.

Answers (2)

Azzi Abdelmalek
Azzi Abdelmalek on 14 Feb 2014
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 Comments
Azzi Abdelmalek
Azzi Abdelmalek on 14 Feb 2014
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 on 14 Feb 2014
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 on 20 Feb 2014
clear all
index = {'1'};
List = {'A','B','C'};
A=sym(sym(strcat(List,index)),'real')
  2 Comments
Kevin Bachovchin
Kevin Bachovchin on 21 Feb 2014
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')

This question is closed.

Tags

Community Treasure Hunt

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

Start Hunting!