Adding a new column to an existing csv file via Matlab.
89 views (last 30 days)
Show older comments
Ivan Mich
on 30 Jul 2019
Commented: Walter Roberson
on 31 Jul 2019
Hello,
I have a question. I want to add a new column to an existing filename via commants in matlab. The existing file (called 'filename1' ) has 22 columns and 400 rows. I ve created the column that I want to add , whis has 400 rows too. The final output i want to have is a csv file with 23 columns and 400 rows. I used these commands , without results:
M1 = [filename1, num2cell(d1(1:end,7))].'; %transpose important
fid = fopen('gtm.csv','wt');
fprintf(fid,'%15s %.6f\n',M1{:} );
fclose(fid);
the "num2cell(d1(1:end,7))" is the new column that i want to add.
Thanking in advance
0 Comments
Accepted Answer
Kojiro Saito
on 31 Jul 2019
You can do it easily with writetable.
Here is an example.
filename1 = 'existingData.csv';
% Read the CSV as a table
t = readtable(filename1);
% Add a new column to the end of the table
numOfColumn = size(t, 2);
newCol = num2cell(d1(1:end,7)); % Your new column
t.(numOfColumn+1) = newCol;
% Change column name if needed
t.Properties.VariableNames{numOfColumn+1} = 'newCol';
% Write to CSV file
writetable(t, 'new.csv')
6 Comments
Walter Roberson
on 31 Jul 2019
We are telling you that you should stop working with xlsread and should use readtable() to read your data, and use the command we show to add a new column to the table and then writetable the results.
%read file
t = readmatrix('filename1.csv');
% Add a new column to the end of the array
t(:,end+1) = d1(:,7); % Your new column
% Write to CSV file
writematrix(t, 'tabledata.txt')
Notice no xlsread, no cell array.
More Answers (0)
See Also
Categories
Find more on Text Files 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!