Mercurial > hg > camir-aes2014
diff core/tools/cell2csv.m @ 0:e9a9cd732c1e tip
first hg version after svn
author | wolffd |
---|---|
date | Tue, 10 Feb 2015 15:05:51 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/tools/cell2csv.m Tue Feb 10 15:05:51 2015 +0000 @@ -0,0 +1,85 @@ +function cell2csv(fileName, cellArray, separator, excelYear, decimal) +% Writes cell array content into a *.csv file. +% +% CELL2CSV(fileName, cellArray, separator, excelYear, decimal) +% +% fileName = Name of the file to save. [ i.e. 'text.csv' ] +% cellArray = Name of the Cell Array where the data is in +% separator = sign separating the values (default = ';') +% excelYear = depending on the Excel version, the cells are put into +% quotes before they are written to the file. The separator +% is set to semicolon (;) +% decimal = defines the decimal separator (default = '.') +% +% by Sylvain Fiedler, KA, 2004 +% updated by Sylvain Fiedler, Metz, 06 +% fixed the logical-bug, Kaiserslautern, 06/2008, S.Fiedler +% added the choice of decimal separator, 11/2010, S.Fiedler + +%% Checking für optional Variables +if ~exist('separator', 'var') + separator = ','; +end + +if ~exist('excelYear', 'var') + excelYear = 1997; +end + +if ~exist('decimal', 'var') + decimal = '.'; +end + +%% Setting separator for newer excelYears +if excelYear > 2000 + separator = ';'; +end + +%% Write file +datei = fopen(fileName, 'w'); + +for z=1:size(cellArray, 1) + for s=1:size(cellArray, 2) + + var = eval(['cellArray{z,s}']); + % If zero, then empty cell + if size(var, 1) == 0 + var = ''; + end + % If numeric -> String + if isnumeric(var) + var = num2str(var); + % Conversion of decimal separator (4 Europe & South America) + % http://commons.wikimedia.org/wiki/File:DecimalSeparator.svg + if decimal ~= '.' + var = strrep(var, '.', decimal); + end + end + % If logical -> 'true' or 'false' + if islogical(var) + if var == 1 + var = 'TRUE'; + else + var = 'FALSE'; + end + end + % If newer version of Excel -> Quotes 4 Strings + if excelYear > 2000 + var = ['"' var '"']; + end + + % OUTPUT value + fprintf(datei, '%s', var); + + % OUTPUT separator + if s ~= size(cellArray, 2) + fprintf(datei, separator); + end + end + if z ~= size(cellArray, 1) % prevent a empty line at EOF + % OUTPUT newline + fprintf(datei, '\n'); + end +end +% Closing file +fclose(datei); +% END \ No newline at end of file