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

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

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

转为arff: mat2arff.m代码

MATLAB

%

% 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 ...

% 读取文件数据 ...

clear

clc

input_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));

return

end

fprintf(f,'%s\n',['@relation ',arff_filename]);

for i = 1 : col - 1

st = ['@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) - 1

st = [st sprintf([floatformat ' ,'],uY(j))];

end

st = [st sprintf([floatformat '}'],uY(length(uY)))];

fprintf(f,'%s\n\n',st);

% 开始保存数据 ...

labelformat = [floatformat ' '];

fprintf(f,'@data\n');

for i = 1 : row

Xi = matdata(i,1:col-1);

s = sprintf(labelformat,Y(i));

s = [sprintf([floatformat ' '],[; Xi]) s];

fprintf(f,'%s\n',s);

end

fclose(f);

%

% 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 ...

% 读取文件数据 ...

clear

clc

input_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));

return

end

fprintf(f,'%s\n',['@relation ',arff_filename]);

for i = 1 : col - 1

st = ['@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) - 1

st = [st sprintf([floatformat ' ,'],uY(j))];

end

st = [st sprintf([floatformat '}'],uY(length(uY)))];

fprintf(f,'%s\n\n',st);

% 开始保存数据 ...

labelformat = [floatformat ' '];

fprintf(f,'@data\n');

for i = 1 : row

Xi = matdata(i,1:col-1);

s = sprintf(labelformat,Y(i));

s = [sprintf([floatformat ' '],[; Xi]) s];

fprintf(f,'%s\n',s);

end

fclose(f);

转为txt: mat2txt.m代码

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

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

MATLAB

clc

clear

load('dataName.mat')

fid = fopen('dataName.txt', 'wt');

for i = 1 : size(data, 1)

for j = 1 : size(data, 2) - 1

fprintf(fid,'%e   ',data(i, j));

end

fprintf(fid,'%e\n',data(i, size(data, 2)));

end

fclose(fid);

clc

clear

load('dataName.mat')

fid = fopen('dataName.txt', 'wt');

for i = 1 : size(data, 1)

for j = 1 : size(data, 2) - 1

fprintf(fid,'%e   ',data(i, j));

end

fprintf(fid,'%e\n',data(i, size(data, 2)));

end

fclose(fid);

标签: mat

顶一下

(0)

0%

踩一下

(0)

0%

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录列表: 2dplanes.arff abalone.arff ailerons.arff Amazon_initial_50_30_10000.arff anneal.arff anneal.ORIG.arff arrhythmia.arff audiology.arff australian.arff auto93.arff autoHorse.arff autoMpg.arff autoPrice.arff autos.arff auto_price.arff balance-scale.arff bank.arff bank32nh.arff bank8FM.arff baskball.arff bodyfat.arff bolts.arff breast-cancer.arff breast-w.arff breastTumor.arff bridges_version1.arff bridges_version2.arff cal_housing.arff car.arff cholesterol.arff cleveland.arff cloud.arff cmc.arff colic.arff colic.ORIG.arff contact-lenses.arff cpu.arff cpu.with.vendor.arff cpu_act.arff cpu_small.arff credit-a.arff credit-g.arff cylinder-bands.arff delta_ailerons.arff delta_elevators.arff dermatology.arff detroit.arff diabetes.arff diabetes_numeric.arff echoMonths.arff ecoli.arff elevators.arff elusage.arff eucalyptus.arff eye_movements.arff fishcatch.arff flags.arff fried.arff fruitfly.arff gascons.arff glass.arff grub-damage.arff heart-c.arff heart-h.arff heart-statlog.arff hepatitis.arff house_16H.arff house_8L.arff housing.arff hungarian.arff hypothyroid.arff ionosphere.arff iris.2D.arff iris.arff kdd_coil_test-1.arff kdd_coil_test-2.arff kdd_coil_test-3.arff kdd_coil_test-4.arff kdd_coil_test-5.arff kdd_coil_test-6.arff kdd_coil_test-7.arff kdd_coil_train-1.arff kdd_coil_train-3.arff kdd_coil_train-4.arff kdd_coil_train-5.arff kdd_coil_train-6.arff kdd_coil_train-7.arff kdd_el_nino-small.arff kdd_internet_usage.arff kdd_ipums_la_97-small.arff kdd_ipums_la_98-small.arff kdd_ipums_la_99-small.arff kdd_JapaneseVowels_test.arff kdd_JapaneseVowels_train.arff kdd_synthetic_control.arff kdd_SyskillWebert-Bands.arff kdd_SyskillWebert-BioMedical.arff kdd_SyskillWebert-Goats.arff kdd_SyskillWebert-Sheep.arff kdd_UNIX_user_data.arff kin8nm.arff kr-vs-kp.arff labor.arff landsat_test.arff landsat_train.arff letter.arff liver-disorders.arff longley.arff lowbwt.arff lung-cancer.arff lymph.arff machine_cpu.arff mbagrade.arff meta.arff mfeat-factors.arff mfeat-fourier.arff mfeat-karhunen.arff mfeat-morphological.arff mfeat-pixel.arff mfeat-zernike.arff molecular-biology_promoters.arff monks-problems-1_test.arff monks-problems-1_train.arff monks-problems-2_test.arff monks-problems-2_train.arff monks-problems-3_test.arff monks-problems-3_train.arff mushroom.arff mv.arff nursery.arff optdigits.arff page-blocks.arff pasture.arff pbc.arff pendigits.arff pharynx.arff pol.arff pollution.arff postoperative-patient-data.arff primary-tumor.arff puma32H.arff puma8NH.arff pwLinear.arff pyrim.arff quake.arff ReutersCorn-test.arff ReutersCorn-train.arff ReutersGrain-test.arff ReutersGrain-train.arff schlvote.arff segment-challenge.arff segment-test.arff segment.arff sensory.arff servo.arff sick.arff sleep.arff solar-flare_1.arff solar-flare_2.arff sonar.arff soybean.arff spambase.arff spectf_test.arff spectf_train.arff spectrometer.arff spect_test.arff spect_train.arff splice.arff sponge.arff squash-stored.arff squash-unstored.arff stock.arff strike.arff supermarket.arff triazines.arff unbalanced.arff vehicle.arff veteran.arff vineyard.arff vote.arff vowel.arff water-treatment.arff waveform-5000.arff weather.nominal.arff weather.numeric.arff white-clover.arff wine.arff wisconsin.arff zoo.arff

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值