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

问题描述:

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

原因: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型字符或者字符串) 实现转换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值