Use text in table to make variables

14 Ansichten (letzte 30 Tage)
David Slater
David Slater am 22 Jan. 2021
Kommentiert: David Slater am 23 Jan. 2021
I have a table, T; the first column contains text enclosed in single quotes, and the second column contains scalar numbers:
Symbol Value
1 'Z1' 3
2 'Z2' 4
How can I get Matlab to create variables from the Symbols and assign the Values to them? ie
Z1=3
Z2=4
I could convert T.Symbol into a string vector:
T.Symbol =s,
but how can I convert s into variables, without having to type each variable manually? (In reality, my table contains many rows, and I have more than one table.)

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 22 Jan. 2021
That is not recommended. For example, how would you expect your code to be able to proceed if one of the symbols was 'T' and so you assigned a numeric value to T, overwriting T's usage as a table?
T = table({'Z1'; 'Z2'}, [3;4], 'VariableNames', {'Symbol', 'Value'})
T = 2x2 table
Symbol Value ______ _____ {'Z1'} 3 {'Z2'} 4
vars = cell2struct(num2cell(T.Value), T.Symbol, 1)
vars = struct with fields:
Z1: 3 Z2: 4
vars.Z2
ans = 4
  1 Kommentar
David Slater
David Slater am 23 Jan. 2021
This works. I can now use vars.Z1 and vars.Z2 in place of the variables Z1 and Z2 in the remainder of my script. to save time, in reality I have named the structure with a single letter. This makes a difference, because there are many more than two variables in my script. I also followed the link to the tutorial, and and I found it helpful. Many thanks. Answer accepted.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

dpb
dpb am 22 Jan. 2021
Do NOT even think about doing this.
  1 Kommentar
David Slater
David Slater am 23 Jan. 2021
An explanation of why not would have been helpful. Walter Robinson has given me an acceptable solution and explained why this is not recommended.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by