使用cell2csv.m,您只需调用cell2csv('mem.csv', tag)
,它就会将元胞数组tag
写入逗号分隔值文本文件mem.csv
中。
单元格2csv.m:
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
我必须在这里复制许可证,对不起:
Copyright (c) 2004-2010, Sylvain Fiedler
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the distribution
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.