将分隔符添加到 csv 文件 MATLAB 的每一行的末尾
Posted
技术标签:
【中文标题】将分隔符添加到 csv 文件 MATLAB 的每一行的末尾【英文标题】:Add a delimiter to end of each line of csv file MATLAB 【发布时间】:2017-02-01 11:42:46 【问题描述】:我正在附加到一个 csv 文件。当前代码输出一行:a;b;c;d 我需要它来输出 a;b;c;d; 注意额外的';'在 d 结束时。这很重要
matrix = [a,b,c,d]
dlmwrite('matrix.csv', matrix, 'delimiter',';','-append','roffset',0, 'precision',14)
任何帮助将不胜感激。 我不得不将变量 a、b、c 和 d 保留为数字,或者它使它成为一个字符向量(或其他东西),这让我的 csv 看起来很有趣
【问题讨论】:
1.- 为什么需要 csv 看起来“漂亮”?你只是在存储数据。 2.-为什么你需要最后的;
?如果你再添加更多的行,你很可能会破坏阅读代码。
它运行到另一个软件中,该软件将每一行作为一个数组读取。如果每一行的末尾没有';',该软件就会崩溃
我的建议:使用fprintf
,格式正确
【参考方案1】:
我一直在使用 MatLab 内置 CSV 写入方法时遇到问题。为什么不编写自己的 .CSV 编写方法?
在这里,你可以创建一个类似的函数:
function write_to_csv(filepath, matrix)
csv = fopen(filepath, 'a+'); % check what sort of open you'd like : https://uk.mathworks.com/help/matlab/ref/fopen.html#inputarg_permission
for ii = 1 : numel(matrix) % this loop depends on the dimensions of your matrix
fprintf(csv, '%s;', matrix(ii)); % check fprintf return type, depending on the data in the matrix : https://uk.mathworks.com/help/matlab/ref/fprintf.html?searchHighlight=fprintf&s_tid=doc_srchtitle#inputarg_formatSpec
end
fclose(csv);
end
这适用于您提供的一维矩阵,运行:
write_to_csv('matrix.csv',matrix)
【讨论】:
嘿伙计,很好的答案!谢谢!你能帮我看看这个问题吗? ***.com/questions/41981820/…以上是关于将分隔符添加到 csv 文件 MATLAB 的每一行的末尾的主要内容,如果未能解决你的问题,请参考以下文章
将csv文件格式的数据传到SQL2008数据库中后,表中的每一列都带有双引号,这个双引号怎样才能去掉?