# Use text in table to make variables

14 次查看（过去 30 天）
David Slater 2021-1-22

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.)

### 采纳的回答

Walter Roberson 2021-1-22
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 个评论显示 -1更早的评论隐藏 -1更早的评论
David Slater 2021-1-23
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.

### 更多回答（1 个）

dpb 2021-1-22
Do NOT even think about doing this.
##### 1 个评论显示 -1更早的评论隐藏 -1更早的评论
David Slater 2021-1-23
An explanation of why not would have been helpful. Walter Robinson has given me an acceptable solution and explained why this is not recommended.

### 类别

Help CenterFile Exchange 中查找有关 Data Type Conversion 的更多信息

### Community Treasure Hunt

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

Start Hunting!

Translated by