How to give range of cells different variable names?

2 次查看(过去 30 天)
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?

采纳的回答

Star Strider
Star Strider 2024-8-12
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 个评论
Abigail
Abigail 2024-8-13
This is the file it's current spitting out. I want to be able to name the columns, so they actually represent the data beneath them. "data" is the path where the excel files are located.
Star Strider
Star Strider 2024-8-13
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 = 4x2 table
CurrentData_1 CurrentData_2 _____________ _____________ 6.4 0.5 6.5 0.7 6.1 0.2 6.3 0.1
data.Properties.VariableNames = {'Column 1','Column 2'}
data = 4x2 table
Column 1 Column 2 ________ ________ 6.4 0.5 6.5 0.7 6.1 0.2 6.3 0.1
.

请先登录,再进行评论。

更多回答(1 个)

Voss
Voss 2024-8-12
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 个评论
Abigail
Abigail 2024-8-13
This gives me the same problem I have with the current code I'm using. I can't have 2 different variable names because both sets of data are coming from
Datafiles(j).data = readmatrix(Data,'Sheet','Report','Range','M18:N18','FileType','spreadsheet');
and if I create
CurrentData = {Datafiles.data}';
CurrentData2 = {Datafiles.data}';
It just doubles the information I need.
Any thoughts on how I can either 1. make them different variables or 2. make one variable equal just M18 and the other equal just N18?
Thanks!
Voss
Voss 2024-8-13

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.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Data Import from MATLAB 的更多信息

产品


版本

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by