annotate core/tools/cell2csv.m @ 0:cc4b1211e677 tip

initial commit to HG from Changeset: 646 (e263d8a21543) added further path and more save "camirversion.m"
author Daniel Wolff
date Fri, 19 Aug 2016 13:07:06 +0200
parents
children
rev   line source
Daniel@0 1 function cell2csv(fileName, cellArray, separator, excelYear, decimal)
Daniel@0 2 % Writes cell array content into a *.csv file.
Daniel@0 3 %
Daniel@0 4 % CELL2CSV(fileName, cellArray, separator, excelYear, decimal)
Daniel@0 5 %
Daniel@0 6 % fileName = Name of the file to save. [ i.e. 'text.csv' ]
Daniel@0 7 % cellArray = Name of the Cell Array where the data is in
Daniel@0 8 % separator = sign separating the values (default = ';')
Daniel@0 9 % excelYear = depending on the Excel version, the cells are put into
Daniel@0 10 % quotes before they are written to the file. The separator
Daniel@0 11 % is set to semicolon (;)
Daniel@0 12 % decimal = defines the decimal separator (default = '.')
Daniel@0 13 %
Daniel@0 14 % by Sylvain Fiedler, KA, 2004
Daniel@0 15 % updated by Sylvain Fiedler, Metz, 06
Daniel@0 16 % fixed the logical-bug, Kaiserslautern, 06/2008, S.Fiedler
Daniel@0 17 % added the choice of decimal separator, 11/2010, S.Fiedler
Daniel@0 18
Daniel@0 19 %% Checking für optional Variables
Daniel@0 20 if ~exist('separator', 'var')
Daniel@0 21 separator = ',';
Daniel@0 22 end
Daniel@0 23
Daniel@0 24 if ~exist('excelYear', 'var')
Daniel@0 25 excelYear = 1997;
Daniel@0 26 end
Daniel@0 27
Daniel@0 28 if ~exist('decimal', 'var')
Daniel@0 29 decimal = '.';
Daniel@0 30 end
Daniel@0 31
Daniel@0 32 %% Setting separator for newer excelYears
Daniel@0 33 if excelYear > 2000
Daniel@0 34 separator = ';';
Daniel@0 35 end
Daniel@0 36
Daniel@0 37 %% Write file
Daniel@0 38 datei = fopen(fileName, 'w');
Daniel@0 39
Daniel@0 40 for z=1:size(cellArray, 1)
Daniel@0 41 for s=1:size(cellArray, 2)
Daniel@0 42
Daniel@0 43 var = eval(['cellArray{z,s}']);
Daniel@0 44 % If zero, then empty cell
Daniel@0 45 if size(var, 1) == 0
Daniel@0 46 var = '';
Daniel@0 47 end
Daniel@0 48 % If numeric -> String
Daniel@0 49 if isnumeric(var)
Daniel@0 50 var = num2str(var);
Daniel@0 51 % Conversion of decimal separator (4 Europe & South America)
Daniel@0 52 % http://commons.wikimedia.org/wiki/File:DecimalSeparator.svg
Daniel@0 53 if decimal ~= '.'
Daniel@0 54 var = strrep(var, '.', decimal);
Daniel@0 55 end
Daniel@0 56 end
Daniel@0 57 % If logical -> 'true' or 'false'
Daniel@0 58 if islogical(var)
Daniel@0 59 if var == 1
Daniel@0 60 var = 'TRUE';
Daniel@0 61 else
Daniel@0 62 var = 'FALSE';
Daniel@0 63 end
Daniel@0 64 end
Daniel@0 65 % If newer version of Excel -> Quotes 4 Strings
Daniel@0 66 if excelYear > 2000
Daniel@0 67 var = ['"' var '"'];
Daniel@0 68 end
Daniel@0 69
Daniel@0 70 % OUTPUT value
Daniel@0 71 fprintf(datei, '%s', var);
Daniel@0 72
Daniel@0 73 % OUTPUT separator
Daniel@0 74 if s ~= size(cellArray, 2)
Daniel@0 75 fprintf(datei, separator);
Daniel@0 76 end
Daniel@0 77 end
Daniel@0 78 if z ~= size(cellArray, 1) % prevent a empty line at EOF
Daniel@0 79 % OUTPUT newline
Daniel@0 80 fprintf(datei, '\n');
Daniel@0 81 end
Daniel@0 82 end
Daniel@0 83 % Closing file
Daniel@0 84 fclose(datei);
Daniel@0 85 % END