MATLAB Answers

How can I export a matrix as a CSV file?

조회 수: 7,289(최근 30일)
Toby Feld
Toby Feld 2016년 4월 26일
댓글: Trevon McHansen 2021년 1월 29일
Hi,
I have a 320x2 matrix with doubles. I want to save it in a CSV file in the following pattern:
234,2 671,5 735,1 264,2 346,7 ... etc.
I googled this problem and found the function "csvwrite". However, when I use that function like this
csvwrite('test.txt',a)
I get the following:
234,2671,5735,1264,2346,7
What is going on here? How can I solve this issue?
Thanks a lot, Toby
  댓글 수: 2
Ian Mclennan
Ian Mclennan 2019년 7월 15일
This thread really helped me, thank you for posting.

댓글을 달려면 로그인하십시오.

채택된 답변

MathWorks Support Team
MathWorks Support Team 2020년 2월 27일
"csvwrite" is not recommended. Use "writematrix" to export matrix data as a CSV file instead.
When writing matrix data to a file, you can specify the file type as part of the file name in the second argument of the function call:
m = [234 2;671 5;735 1;264 2;346 7]
writematrix(m,'M.csv')
  댓글 수: 1
Trevon McHansen
Trevon McHansen 2021년 1월 29일
To potentially save others an extra click or two, "writematrix" was introduced in R2019a.

댓글을 달려면 로그인하십시오.

추가 답변(4개)

Azzi Abdelmalek
Azzi Abdelmalek 2016년 4월 26일
a=[234,2
671,5
735,1]
csvwrite('file.csv',a)
  댓글 수: 4
Guillaume
Guillaume 2019년 7월 13일
writematrix is fairly new and did not exist when this question was ask.
I was a bit shocked to find that csvwrite truncates the data output.
Any conversion of number to text will truncate the representation of most numbers, in python as well. As documented csvwrite has a precision of 5 digits. For more precision, the alternative at the time was dlmwrite. Interestingly writematrix also doesn't have an option of altering the precision and always use longg (15 digits of precision).

댓글을 달려면 로그인하십시오.


Jos (10584)
Jos (10584) 2016년 4월 26일
You and your computer disagree on what to use as a decimal symbol: a . or a ,
I strongly recommend you to use a decimal point. Probably that means you have to change your locale / regional settings in the operating system.

Sindar
Sindar 2019년 3월 12일
It sounds like all you need to do is print a column vector instead of a row vector. This can be done easily:
csvwrite('test.txt',a.')
The '.' is important only if you have complex data

Toby Feld
Toby Feld 2016년 4월 26일
편집: Toby Feld 2016년 4월 26일
For some reason the example I used was re-edited by the forum software to let it appear in one line. I cannot figure out how to disable that formatting (seriously, WTF??). So here is how I want the CSV file to look as a png file. I hope the forum does not change graphic files.

태그

Community Treasure Hunt

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

Start Hunting!

Translated by