Matlab--cell输出至csv文件cell2csv

matlab文件的输出中,经常遇到字符串与数值型同时输出,需要判断后再重新写的情况

这里在官网有一个函数,cell2csv可以根据分隔符直接将cell矩阵直接输出成几列至csv文件

我这里给出的示例是输出时间和PM2.5,时间是字符串,污染物浓度是数值

var_station{1,1}='Time,pm2.5'; %第一行为头信息

for m=1:length(file)                  %从第二行开始分别为每一个时刻的时间和污染物浓度,合并为一个cell

    if isnan(pm_avg)

        var_station{m+1,1}=strcat(time_str,',',num2str(-9999));

    else

        var_station{m+1,1}=strcat(time_str,',',num2str(pm_avg));

    end

end     

然后调用函数输出至csv文件即可

cell2csv('CS-PM25.csv',var_station,',')


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_r(['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);

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容