700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > mat格式数据集转换为arff与txt格式

mat格式数据集转换为arff与txt格式

时间:2018-11-11 16:07:27

相关推荐

mat格式数据集转换为arff与txt格式

本文共239个字,预计阅读时间需要1分钟。

下面的代码给出了将mat格式数据集转换为arff与txt格式的matlab代码。

注意,每个.mat文件中只有一个数据集,其中共有m+1列,最后一列是label。

转为arff: mat2arff.m代码

%% This function is used to convert the input data to '.arff'% file format,which is compatible to weka file format ...%% Parameters:% input_filename -- Input file name,only can conversion '.mat','.txt'% or '.csv' file format ...% arff_filename -- the output '.arff' file ...% NOTEs:%The input 'M*N' file data must be the following format:% M: sampel numbers;% N: sample features and label,"1:N-1" -- features, "N" - sample label ...% 读取文件数据 ...clearclcinput_filename = 'GLIOMA-t.mat';arff_filename = 'GLIOMA.arff';if strfind(input_filename,'.mat')matdata = importdata(input_filename);elseif strfind(input_filename,'.txt')matdata = textread(input_filename) ;elseif strfind(input_filename,'.csv')matdata = csvread(input_filename);end[row,col] = size(matdata);f = fopen(arff_filename,'wt');if (f < 0)error(sprintf('Unable to open the file %s',arff_filename));returnendfprintf(f,'%s\n',['@relation ',arff_filename]);for i = 1 : col - 1st = ['@attribute att_',num2str(i),' numeric'];fprintf(f,'%s\n',st);end% 保存文件头最后一行类别信息floatformat = '%.16g';Y = matdata(:,col);uY = unique(Y); % 得到label类型st = ['@attribute label {'];for j = 1 : size(uY) - 1st = [st sprintf([floatformat ' ,'],uY(j))];endst = [st sprintf([floatformat '}'],uY(length(uY)))];fprintf(f,'%s\n\n',st);% 开始保存数据 ...labelformat = [floatformat ' '];fprintf(f,'@data\n');for i = 1 : rowXi = matdata(i,1:col-1);s = sprintf(labelformat,Y(i));s = [sprintf([floatformat ' '],[; Xi]) s];fprintf(f,'%s\n',s);endfclose(f);

转为txt: mat2txt.m代码

当然也可用save直接转换,但是会出现每一行开头会空两格的情况。

注意dataName.mat中的数据集名称是data

clcclearload('dataName.mat')fid = fopen('dataName.txt', 'wt');for i = 1 : size(data, 1)for j = 1 : size(data, 2) - 1fprintf(fid,'%e ',data(i, j));endfprintf(fid,'%e\n',data(i, size(data, 2)));endfclose(fid);

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