Add data to .csv file using matlab

I want the data in the .csv file to look like this:
DateTime1 Username1 Path1 Remark1
Here, all the cells are strings and they are in a single row but 4 columns. Everytime I need to add data at the end of this .csv i.e. it should look something like this
How to I prepare this data? I really don't know how to prepare this data and add it to the csv in this manner. Can someone please help me out here?
I tried preparing the data in this way,
data = ['DateTime1' 'UserName1' 'Path1' 'Remark1'] But they got concatenated.

 Accepted Answer

data = {'DateTime1' 'UserName1' 'Path1' 'Remark1'};
data1= {'DateTime2' 'UserName2' 'Path2' 'Remark2'};
Data = [data;data1];
writecell( Data, 'test.csv');

3 Comments

Harshita K
Harshita K on 5 Oct 2020
Edited: Harshita K on 5 Oct 2020
Could you elaborate on how I can add to the end of the csv with the new set of data? This is done only if both data and data1 are created in the same instance which is not the case. Everytime I run the .m file all the information has to be added to the end of the csv in that manner.
I could make this work by reading the csv data using
data = readcell('test.csv');
data1= {'DateTime2' 'UserName2' 'Path2' 'Remark2'};
Data = [data;data1];
writecell( Data, 'test.csv');
Thank you.

Sign in to comment.

More Answers (2)

Jon
Jon on 5 Oct 2020
Edited: Jon on 5 Oct 2020
In MATLAB put the data into a table array. Then use writetable with the 'WriteMode','Append' property value pair. Please see https://www.mathworks.com/help/matlab/ref/writetable.html especially the section on adding data to end of table

2 Comments

WriteMode isn't supported in 2019b I guess, everytime I use that, there's an error that says,
Invalid parameter name: WriteMode.
I didn't realize that was such a new feature. If you have it available I would recommend updating to the new version, if not just for this feature just to stay current.

Sign in to comment.

Luciano Garim
Luciano Garim on 5 Oct 2020
To import your data from a CSV file into MATLAB use the “readtable” function. The “readtable” function automatically detects the header and the number of lines to skip.
T = readtable('myfile.csv');
To add your data use dlmwrite
M = randn(4,4);
dlmwrite(T,M,'delimiter',',','-append');

1 Comment

This works only with numbers, when I want to add strings this is how it gets populated in the csv,

Sign in to comment.

Products

Release

R2019b

Community Treasure Hunt

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

Start Hunting!