700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java mat转csv_MATLAB数据保存成其他格式文件(.csv .xlsx .txt等)通用函数[faruto版本]

java mat转csv_MATLAB数据保存成其他格式文件(.csv .xlsx .txt等)通用函数[faruto版本]

时间:2024-07-21 20:44:37

相关推荐

java mat转csv_MATLAB数据保存成其他格式文件(.csv .xlsx .txt等)通用函数[faruto版本]

function [Status, Message] = SaveData2File(Data, FileName, ColNamesCell)

%% SaveData2File

% by LiYang_faruto

% Email:farutoliyang@

% /05/01

%% 输入输出预处理

Status = 1;

Message = [];

if nargin < 3 || isempty(ColNamesCell)

ColNamesCell = [];

end

if nargin < 2 || isempty(FileName)

FileName = 'OutData.xlsx';

end

if nargin < 1 || isempty(Data)

Status = 0;

Message = '缺少输入参数,请输入待保存的数据!';

disp(Message);

return;

end

% ColNamesCell 处理

[Rlen, Clen] = size(Data);

if ~isempty(ColNamesCell)

tlen = length(ColNamesCell);

if tlen < Clen

for i = tlen+1:Clen

str = ['VarName',num2str(i)];

ColNamesCell{i} = str;

end

end

if tlen > Clen

ColNamesCell = ColNamesCell(1:Clen);

end

end

% FileName 检查处理

ind = find(FileName == '.', 1,'last');

if isempty(ind)

FileName = [FileName,'.xlsx'];

ind = find(FileName == '.', 1,'last');

end

ExtCell = {'.txt','.dat','.csv','.xls','.xlsb','.xlsx','.xlsm'};

ExtName = FileName(ind:end);

if ~ismember(ExtName, ExtCell)

Status = 0;

Message = '请检查输入的文件扩展名!(仅支持如下扩展名)';

disp(Message);

disp(ExtCell);

return;

end

%% Main

switch class( Data )

case 'double'

tCell = num2cell(Data);

if ~isempty( ColNamesCell )

tCell = [ColNamesCell;tCell];

end

Fun = @(x)( num2str(x) );

tCell = cellfun( Fun,tCell, 'UniformOutput', false);

T = cell2table(tCell);

writetable(T,FileName,'WriteVariableNames',false);

case 'cell'

tCell = Data;

if ~isempty( ColNamesCell )

tCell = [ColNamesCell;tCell];

end

Fun = @(x)( num2str(x) );

tCell = cellfun( Fun,tCell, 'UniformOutput', false);

T = cell2table(tCell);

writetable(T,FileName,'WriteVariableNames',false);

case 'struct'

otherwise

Status = 0;

Message = '输入数据类型未知!请检查!';

disp(Message);

return;

end

%% sub fun

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。