matlab 格式化文本文件的解析

比如这样一种格式化的文本文件,文件说明及下载地址:/pub/machine-learning-databases/statlog/german/ 的索引


这里写图片描述

fid = fopen('german.data', 'r');
C = textscan(fid, '%s, %d, %s, %s, %d, %s, %s, %d, %s, %s, %d, %s, %d, %s, %s, %d, %s, %d, %s, %s, %d');
fclose(fid);

n1 = numel(C);      % 属性列的个数
n2 = numel(C{1});   % 样本的个数

X = zeros(n1, n2);


for i = 1:n1,
    if iscell(C{i})
        for j = 1:n2,
                % A12 ⇒ 2
                if i < 10,
                    d = textscan(C{i}{j}, '%c%c%d');
                else
                % A103 ⇒ 3
                    d = textscan(C{i}{j}, '%c%c%c%d');
                end 
                X(i, j) = d{end};
        end
    else
        X(i, :) = C{i};
    end
end 

y = X(end, :);
X(end, :) = [];

posX = X(:, y == 1);            % 700
negX = X(:, y == 2);            % 300

trainX = [posX(:, 1:350), negX(:, 1:150)];
trainY = [ones(1, 350), 2*ones(1, 150)];

testX = [posX(:, 351:end), negX(:, 151:end)];
testY = [ones(1, 350), 2*ones(1, 150)];

[trainX, s1] = mapminmax(trainX);
testX = mapminmax('apply', testX, s1);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值