How can I export a matrix as a CSV file?
2,954 ビュー (過去 30 日間)
古いコメントを表示
Toby Feld
2016 年 4 月 26 日
編集済み: MathWorks Support Team
2024 年 11 月 14 日 5:50
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 件のコメント
jgg
2016 年 4 月 26 日
Why do you want to export it like that? It seems really unnatural, and will be annoying to accomplish.
採用された回答
MathWorks Support Team
2024 年 11 月 14 日 0:00
編集済み: MathWorks Support Team
2024 年 11 月 14 日 5:50
"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')
4 件のコメント
Chris
2022 年 11 月 2 日
Look at your file hierarchy on the left you'll see a file that's been generated with the name you gave it. You can right click and show it in explorer.
その他の回答 (4 件)
Azzi Abdelmalek
2016 年 4 月 26 日
a=[234,2
671,5
735,1]
csvwrite('file.csv',a)
4 件のコメント
Bill Tubbs
2019 年 7 月 13 日
Being a Python user coming to Matlab I was a bit shocked to find that csvwrite truncates the data output.
csvwrite('u.csv', u)
File contents:
1000,957.6,917,878.13,840.9, ...
Then I happened to check the documentation and found this:
csvwrite is not recommended. Use writematrix instead. For more information, see Compatibility Considerations.
writematrix(u)
File contents:
1000,957.603280698574,917.004043204671,878.12608018665,840.896415253715, ...
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)
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.
0 件のコメント
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
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Data Import and Export についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!