How to give range of cells different variable names?
48 views (last 30 days)
Show older comments
Abigail
on 12 Aug 2024 at 16:31
Commented: Voss
on 13 Aug 2024 at 15:56
Hello!
I am collecting data from a range of cells from an .xlsx file using the readmatrix function as so:
Datafiles(j).data = readmatrix(Data,'Sheet','Report','Range','M18:N18','FileType','spreadsheet');
Then I populate that data into a new excel file like so:
CurrentData = {Datafiles.data}';
TABLE_Pass = table(CurrentData);
TABLE = vertcat(TABLE_Pass);
Now, my problem is, it spits out the data in 2 columns labeled "CurrentData_1" "CurrentData_2" and I want to specify the name of the second column.
When I create a second variable name, it gives me 4 columns with the information doubled.
Any tips on how to give the data 2 separate variable names?
0 Comments
Accepted Answer
Star Strider
on 12 Aug 2024 at 16:52
It might help to have the file.
Otherwise, conbbsider specifying the variable names as (for example):
TABLE.Properties.VariableNames = {'Variable Name 1','Variable Name 2'}
of course using the varialbe names you want to assign to them.
.
4 Comments
Star Strider
on 13 Aug 2024 at 12:00
I don’t know what they should be called, however this is how to change their names. Insert the correct names for ‘Column 1’ and ‘Column 2’. (In R2023b, spaces and some other special characters are permitted.)
Data = 'CurrentData.xlsx';
data = readtable(Data)
data.Properties.VariableNames = {'Column 1','Column 2'}
.
More Answers (1)
Voss
on 12 Aug 2024 at 16:50
Try replacing this
CurrentData = {Datafiles.data}';
TABLE_Pass = table(CurrentData);
TABLE = vertcat(TABLE_Pass);
with this
CurrentData = vertcat(Datafiles.data);
TABLE = array2table(CurrentData,'VariableNames',{'x','y'});
and replace 'x' and 'y' with the variable names you want to use.
2 Comments
Voss
on 13 Aug 2024 at 15:56
Don't create a cell array of 1-by-2 vectors by doing this:
CurrentData = {Datafiles.data}';
because that will lead to a table with one variable, which is a cell array of 1-by-2 vectors.
Instead, create an N-by-2 matrix by doing what I showed in my answer:
CurrentData = vertcat(Datafiles.data);
because that will lead to a table with two variables, which you can name individually.
See Also
Categories
Find more on Data Import from MATLAB 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!