Use For Loop to obtains variable name and value from Table
조회 수: 16 (최근 30일)
이전 댓글 표시
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
Dyuman Joshi
2023년 11월 9일
You can get the variable names from the table and use them to access the data
names = TableName.Properties.VariableNames
dpb
2023년 11월 9일
편집: dpb
2023년 11월 9일
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?
답변 (1개)
Arun
2024년 1월 4일
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
참고 항목
카테고리
Help Center 및 File Exchange에서 Tables에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!