MATLAB在文件中写入中文乱码的解决方法

问题描述:

MATLAB  fprintf在命令行输出中文没问题,但在csv中写入中文时csv中汉字显示乱码,如图(图来自网络):

MATLAB在文件中写入中文乱码的解决方法

原因:MATLAB默认编码格式是UTF-8,与中文格式兼容有问题

解决:

1、如要使用fprintf写数据,则在fopen时指定中文编码‘GB2312’,如:

fid = fopen(outfile,'w+','n','GB2312');

outfile是输出的csv文件,‘w+’表示写数据可读(可以根据具体需求更换),‘n’不可缺少,'GB2312'中文编码

2、使用writematrix写csv文件,则不需要使用fopen

writematrix(out, outfile, 'Encoding','GB2312');

out是要写的数据矩阵,数字和字符都可;outfile是输出的csv文件;'Encoding','GB2312' 指定编码格式。writematrix的其他用法请参考帮助文档 将矩阵写入文件 - MATLAB writematrix - MathWorks 中国

可能需要用到的知识:动态追加矩阵 创建、串联和扩展矩阵 - MATLAB & Simulink - MathWorks 中国

注意在追加矩阵时,字符格式使用string,使用char型会出现维度不一致的问题。‘’的是char型,“”是string型,可以通过string(char型字符或者字符串)实现转换。

上一篇:CodeForces - 1272E Nearest Opposite Parity(多源起点的最短路)


下一篇:[LeetCode] 922. Sort Array By Parity II