CSV Dateien in Matlab erstellen

Mit dem Matlab eigenen csvwrite ist es nicht möglich, die Inhalte von Cell-Arrays als CSV-Datei zu exportieren. Unter dem Namen cellwrite gibt es eine Alternative für zweidimensionale Cell-Arrays. Die Funktion liefert aber recht einfache CSV-Dateien. Ausserdem ist die Formatierung – insbesondere von Zahlen – für ein deutsches Excel schwierig lesbar. Man muss die Datei mühselig konvertieren, damit am Ende alles stimmt. Aus diesem Grund habe ich die Funktion mal für “deutsche” CSV-Dateien angepasst. Strings werden hierbei in Anführungszeichen ausgegeben; Zahlen mit Komma als Dezimaltrennzeichen und als Spaltentrennzeichen wird das Semikolon verwendet. Damit können die erzeugten CSV-Dateien einfach geöffnet werden in Excel.


function cellwrite(filename, cellarray)
[rows, cols] = size(cellarray);
fid = fopen(filename, 'w');
for i_row = 1:rows
    file_line = '';
    for i_col = 1:cols
        contents = cellarray{i_row, i_col};
        if isnumeric(contents)
            contents = strrep(num2str(contents),'.',',');
        elseif isempty(contents)
            contents = '';
        else
            contens = ['"' contents '"'];
        end
        if i_col < cols
            file_line = [file_line, contents, ';'];
        else
            file_line = [file_line, contents];
        end
    end
    count = fprintf(fid, '%s\n', file_line);
end
st = fclose(fid);
if st == -1
    error('Bad file write')
end

0 Responses to “CSV Dateien in Matlab erstellen”


  • No Comments

Leave a Reply