How to export a table including column names?

I have a matrix A that I want to convert into a table with variable names and export as csv.
This is my code:
MyTable = array2table(A);
MyTable.Properties.VariableNames(1:4) = {'Min','Max', 'Mean', 'St. Dev.'};
writetable(MyTable,'MyTable.csv', 'WriteVariableNames', true);
But I get the following error:
Error using writetable
Unsupported type 'double'. Use writematrix instead.
But when using 'writematrix' the column names aren't supported.
NB: one of the columns in A has NaN in some rows.
Update: the code above works fine; there was a mistake in the original code. SORRY!

 Accepted Answer

Maybe there is a typo in the original code? If I adjust the variable names, which must be legal Matlab symbols in my R2018b version, it is running:
A = rand(5, 4); % Some test data
MyTable = array2table(A);
MyTable.Properties.VariableNames(1:4) = {'Min','Max', 'Mean', 'StDev'};
writetable(MyTable,'MyTable.csv', 'WriteVariableNames', true);

1 Comment

You're right, there was a typo! My bad, so sorry! But thank you!

Sign in to comment.

More Answers (1)

It might be better to write it as a text file instead, since a .csv file may not be appropriate.
writetable(MyTable,'MyTable.txt', 'WriteVariableNames', true);

6 Comments

Nope, doesn't do it. Do you think the fact that A contains NaNs in some rows could be the source of the error?
It works for me, including NaNs:
T = array2table([1,2;NaN,3;NaN,4;5,6]);
T.Properties.VariableNames = {'X','Y'};
writetable(T,'test.txt')
type test.txt
X,Y 1,2 NaN,3 NaN,4 5,6
You're right, this works fine. There was a mistake in the original code, my bad!
Thanks @Star Strider that solved my problem too!
@Paul Safier — My pleasure!
A Vote would be appreciated!

Sign in to comment.

Categories

Asked:

on 20 Mar 2022

Commented:

on 7 Apr 2023

Community Treasure Hunt

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

Start Hunting!