Dear all,
I have an array with n number of columns and 100 rows. I would like to copy them into a table with the same dimension that has the names of the variables already written.
any ideas?
Thanks in advance!

 Akzeptierte Antwort

BN
BN am 9 Feb. 2020
Bearbeitet: BN am 9 Feb. 2020

0 Stimmen

Hello, If A is your array and you want to have a table based on it, you can simply usearray2table.
Table = array2table(A);
If you want to change the variable names, so you can do this nicely, otherwise variable names stay what they are at the A
Table = array2table(A,'VariableNames',{'firstvariable','secondvariable','etc...'})
Here is an example for you:
A = rand(10,5); % here is random array with 10 rows and 5 columns
Table = array2table(A,'VariableNames',{'varname_1','varname_2','varname_3','varname_4','varname_5'}); %convert it to table and change the variable names
Best Regards

5 Kommentare

Marc Elmeua
Marc Elmeua am 9 Feb. 2020
Thanks Behzad!
But this solution will make me enter the variable names one by one, no? I guess I'll just have to make a loop somehow..
Marc Elmeua
Marc Elmeua am 9 Feb. 2020
I guess I didn't explain myself. I have two tables, one with variable names and one without, I need to put the same variable names from table 1 in table 2.
"I have two tables, one with variable names and one without, I need to put the same variable names from table 1 in table 2."
Your original question does not mention "two tables", nor copying variable names from one table to another.
We can't read minds.
Perhaps this is what you want, where A is your array and T1 is an existing table:
T2 = array2table(A, 'VariableNames',T1.Properties.VariableNames)
BN
BN am 9 Feb. 2020
Bearbeitet: BN am 9 Feb. 2020
Hello Marc, This turns a different question rather than the first one, I think.
Anyways I explain it to you using this example, I think you can use the second code at the end of this comment as your answer from me.
Here we have two arrays, we transform them to the table. one of our tables has variable names and one other has not any variable names. We simply copy variable names of the first table into a cell and then use this cell to put variable names on our other table.
% I made this little and simple example to tell you how to:
% 1: copy variable names of one table
% 2: paste it as the variable names of second table automaticly
%Create 2 random arrays
A = rand(2,2);
B = rand(2,2);
% one of our arrays has variable name
A = array2table(T1,'VariableNames',{'first_variable','second_variable'});
% and one another has not any variable names.
% We want to copy variable name from A and paste it for B
% So first we get variable names from A:
varNames = A.Properties.VariableNames; % You can see one cell appears in
% workspace that contains name of variables in table A.
% now we want put this variable names as variable names of B (second table)
% So:
B = array2table(B,'VariableNames',varNames);
Mark, Note that if you already have 2 tables rather than arrays it would be very simple and all you should have to do is this two line:
% if A is your first table with variable names
varNames = A.Properties.VariableNames;
% and B is your second table without variable names
% you can use this to add A variable names to B
B.Properties.VariableNames = varNames;
Best Regards
Marc Elmeua
Marc Elmeua am 9 Feb. 2020
Thanks Behzad, that's exactly what I needed.
I do have an array and a table, but once I transform the array to table I have two tables. So that's perfect! thanks!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte

Gefragt:

am 9 Feb. 2020

Kommentiert:

am 9 Feb. 2020

Community Treasure Hunt

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

Start Hunting!

Translated by