简体   繁体   中英

Using fprintf for csv in matlab

I would like to generate a csv file with a header and some data. Since I am on a Mac, this does not work using csvwrite, so I need to use fprintf.

I am storing my headers in a cell array called header (header = 'AB' 'CB'). Whatever I am trying I get an error:

Error using fprintf

Function is not defined for 'cell' inputs.

Can somebody make an easy example with the header example?

Something like this should work,

headers ={'Header1','Header2','Header3'};
fh = fopen('SomeFile.csv','w');
for ii = 1:numel(headers)
   if ii == 1
      fprintf(fh,headers{ii});
   else
      fprintf(fh,[',',headers{ii}]); 
   end
end
randVals = rand(5,3);
for ii = 1:size(randVals,1)
       fprintf(fh,'\n');
    for jj = 1:size(randVals,2)
        if jj == 1
            fprintf(fh,num2str(randVals(ii,jj)));
        else
            fprintf(fh,[',',num2str(randVals(ii,jj))]);
        end
    end
end
fclose(fh)

You just need to separate out the headers and do the manual grunt work that csvwrite would normally do for you.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM