MATLAB: Import data with column separated with a comma, and comma as decimal place symbol

csvloadMATLAB

Hello
I want to import a .csv data file with comma both for decimal place symbol and as system for divide the column, see below.
0,"0","0,9025","0","0,0341856"
0,05,"0","0,9","0","0,03409091"
0,1,"0,0003333325","0,9","0,001851847","0,03409091"
0,15,"0,001333333","0,9025","0,007407404","0,0341856"
How can I import the data? Matlab do not recognize the difference between the comma of the decimal place and the comma of the comulm deviders.
Regards

Best Answer

  • I developed the following code, reading and modifying the comma and other symbol in the text.
    fid = fopen([PathAndFileName,'.csv'],'r'); % Open file
    C = textscan(fid, '%s'); % Read file
    fclose(fid); % Close file
    C=strrep(C{1,1},'","',' '); % Modify "," into a space
    C=strrep(C,'"',''); % Delete remaining "
    C=strrep(C,',','.'); % From comma to point decimal simbol
    Data=zeros(numel(C),length(str2num(C{end,1}))); % Initialize matrix
    for n = 1:numel(C)
    Data(n,:) = str2num(C{n,1}); % Divide all rows into the columns
    end