matlab文件的輸出中,經(jīng)常遇到字符串與數(shù)值型同時(shí)輸出,需要判斷后再重新寫的情況
這里在官網(wǎng)有一個(gè)函數(shù),cell2csv可以根據(jù)分隔符直接將cell矩陣直接輸出成幾列至csv文件
我這里給出的示例是輸出時(shí)間和PM2.5,時(shí)間是字符串,污染物濃度是數(shù)值
var_station{1,1}='Time,pm2.5';?%第一行為頭信息
for?m=1:length(file)??????????????????%從第二行開始分別為每一個(gè)時(shí)刻的時(shí)間和污染物濃度,合并為一個(gè)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?????

然后調(diào)用函數(shù)輸出至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);