Access data in cell and save as vector with corresponding variable name

hey there,
i am creating a cell with tables in it when i read a mf4 file. (see picture 1)
Thats the structure of each table (picture 2):
I can access each variable easily with the brackets and save them with the wanted name.
However I want to automate it.
For instance search for d2s and get the values out of the table and save it in a vector in double format with the vector named after the variable.
t does not need to be extracted.
Thanks in advance! HMU if you need more!

4 个评论

As usual the recommendation is: don't do this! Creating variables dynamically is a shot in your knee. See TUTORIAL: Why and how to avoid Eval
You can create a struct instead, which contains the wanted vectors.
I need the variables with the exact name in the workspace since they are needed for further calculations.
Is there any possibily to realize that?
Did you read the link? You find the "bad solution" there also as deprecated method, because it causes more trouzbles as it solves. But of course, if you really want to apply this, do it.
Could you then help me with creating the struct?

请先登录,再进行评论。

 采纳的回答

Data = struct(); % [EDITED], was: struct([]);
for k = 1:numel(tableCell)
C = tableCell{k};
NameList = T.Properties.VariableNames;
NameList = setdiff(NameList, {'t'}); % Ignore "t"
for iName = 1:numel(NameList)
Name = NameList{iName};
Data.(Name) = C.(Name);
end
end

3 个评论

Thanks!
I just received an error saying:
A dot name structure assignment is illegal when the structure is empty. Use a subscript on the structure.
in line Data.(Name) = C.(Name);

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Tables 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by