matlab从SQLserver获取元细胞数据写入CSV方法

采用MATLAB连接从数据库或者其他地方导出数据时,数据格式是cell类型,里面包含数字、汉字等等多类型变量。采用常规方法乱码,采用matlab官网方法可将数据正常导出。

摘自matlab官网的代码。

function cell2csv(filename,cellArray,delimiter)
% Writes cell array content into a *.csv file.
% 
% CELL2CSV(filename,cellArray,delimiter)
%
% filename      = Name of the file to save. [ i.e. 'text.csv' ]
% cellarray    = Name of the Cell Array where the data is in
% delimiter = seperating sign, normally:',' (it's default)
%
% by Sylvain Fiedler, KA, 2004
% modified by Rob Kohr, Rutgers, 2005 - changed to english and fixed delimiter
if nargin<3
    delimiter = ',';
end
 
datei = fopen(filename,'w');
for z=1:size(cellArray,1)
    for s=1:size(cellArray,2)
        
        var = eval(['cellArray{z,s}']);
        
        if size(var,1) == 0
            var = '';
        end
        
        if isnumeric(var) == 1
            var = num2str(var);
        end
        
        fprintf(datei,var);
        
        if s ~= size(cellArray,2)
            fprintf(datei,[delimiter]);
        end
    end
    fprintf(datei,'\n');
end
fclose(datei);

函数调用。

cell2csv('Gender_男.csv', Data, ',');

输出结果。

在这里插入图片描述

常规方法对于数组有效,元细胞乱码。

tmp = Data;
[tm,tn]= size(Data);

fid = fopen('Gender男.csv', 'w+', 'n', 'utf8');    % 创建一个csv文件
for i=1:tm
    fprintf(fid, '%s,%s,%s,%s,%s,%s,%s,%s,%s\n',... 
    tmp{i,1},...
    tmp{i,2},tmp{i,3},tmp{i,4},...
    tmp{i,5},tmp{i,6},...
    tmp{i,7},tmp{i,8},...
    tmp{i,9}...
    ); % 一行9个数据,用逗号分隔;每行结束后加上\n换行
end
fclose(fid);

输出结果。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨铮...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值