Use For Loop to obtains variable name and value from Table
17 views (last 30 days)
Show older comments
Hi,
I am having trouble automatically creating varaibales from the below table? at the moment doing this by coding each individual column
Any help much appreciated
4 Comments
Dyuman Joshi
on 9 Nov 2023
You can get the variable names from the table and use them to access the data
names = TableName.Properties.VariableNames
dpb
on 9 Nov 2023
Edited: dpb
on 9 Nov 2023
Are the names consistent or do they change all over the place from one file to another? If they always relate to a given property but may just have a different trailing subscript such as the example file but are the same variables as far as processing given the initial name string, I often will do a name substitution to a set of convenient predefined names that are succinct but meaningful for coding. The substitution can be done with string pattern matching to ensure positions aren't moved around. Simply change the Properties.VariableNames cell array as @Dyuman Joshi notes above or use the renamevars function.
Doing it this way means you can code the application with a convenient set of variables and not worry about finding stuff dynamically at all. It can be done that way, but why make things more complicated if simpler can work?
Answers (1)
Arun
on 4 Jan 2024
Hi Adrian,
I understand that you want to obtain variable names and data from a table created with automatically created variable names.
This can be done using the table properties or using the “renamevars” function. Here is a code snippet that might be useful:
%creating a sample table
% you can use dataTable = readtable('yourFile.csv','TextType','string')
% Define the number of rows and columns
numRows = 5;
numCols = 4;
% Generate random values for the table
tableData = rand(numRows, numCols);
% Create a table with column names
columnNames = {'Column1', 'Column2', 'Column3', 'Column4'};
dataTable = array2table(tableData, 'VariableNames', columnNames);
%solution to the issue:
%using table properties:
names = dataTable.Properties.VariableNames;
disp(dataTable.(names{1}));
%Solution 2:
%Using renamevars function
allVars = 1:width(dataTable);
newNames = append("Reading",string(allVars));
dataTable = renamevars(dataTable,allVars,newNames);
disp(dataTable);
disp(dataTable.Reading1); % here we can see that, data is accessed using variables defined by us.
For more information regarding "renamevars" function please refer the shared MATLAB Documentation link:
I hope this helps.
0 Comments
See Also
Categories
Find more on Tables 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!