Create variable named from a cell

1 view (last 30 days)
Mandeep
Mandeep on 22 Sep 2014
Commented: Mandeep on 23 Sep 2014
How do I generate a variable of empty matrix, which is named after the values in one of the cell of imported text in another variable.
E.g I import data file with
A {'DT140906' 'x'};
Now I want to create a varible that will automatically take the name 'DT140906' or what ever the name is in A.

Accepted Answer

the cyclist
the cyclist on 22 Sep 2014
A = {'DT140906' 'x'};
eval([A{1},' = {}'])
  3 Comments
Image Analyst
Image Analyst on 23 Sep 2014
Why is it not empty??? Essentially you're doing
DT140906 = {};
and making a cell (one cell, not a cell array ) with null (empty) contents. Why is your DT140906 variable not empty? What value does it have??? Maybe you want a double scalar instead?? In that case, do
eval([A{1},' = []']); % Brackets instead of braces.
Again, it will be empty.

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 22 Sep 2014
And how are you going to be able to refer to that variable later in your code when you don't know the name of it until run-time ? You can use dynamic field names in structures but I don't even like that approach.
  2 Comments
the cyclist
the cyclist on 22 Sep 2014
I was going to wait until the expected "that doesn't work" or rarer "thanks!" before I launched into the fact that what you are doing is likely a bad programming practice, but I agree with Image Analyst here.
If you have any control of how these variables are named upstream from your program, you might be able to do better in the MATLAB section of what you are doing. We'd need to know more detail to help you figure out a strategy.
Mandeep
Mandeep on 22 Sep 2014
I will put the code in the window and see if that makes a better sense.

Sign in to comment.

Categories

Find more on Migrate GUIDE Apps in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!