【问题标题】:Load a dataset in matlab for knn classification在matlab中加载一个数据集进行knn分类
【发布时间】:2021-04-07 08:34:37
【问题描述】:

大家好,实际上我想在 matlab 中加载此数据集以对其执行 knn 分类,但我不知道如何执行此操作。我已尝试加载和 readtable 并且...但它不起作用然后我尝试了此代码

FID=fopen('file','rt');
a=textscan(FID,''...);

但实际上我找不到什么是文本格式来获取我想要的数据,所以这是一个死胡同,任何人都可以帮助我解决这个问题。请

这就是我的数据文件内部的样子 enter image description here

这是数据集文件http://lms.ui.ac.ir/public/group/a7/b2/06/6a5fb_24fb.gz

【问题讨论】:

    标签: matlab dataset classification knn


    【解决方案1】:

    也许您可以尝试以下方法:

    编辑:代码现在可以正确导入文件

    FID = fopen('toy.m','rt');
    data = {};
    i = 1;
    while ~feof(FID)
        line = fgetl(FID);
        line = fgetl(FID);
        if feof(FID)
            break;   
        end
        %sprintf('%d %s', i, line) %debug
        if (isempty(line))
            headers = 3;
        elseif (line(1) ~= '#')
            headers = 2;
        else
            headers = 1;
        end
        rows = textscan(FID, '%s %s %d', 1, 'headerlines', headers);
        data{i} = cell2mat(textscan(FID, '', rows{3}, 'headerlines', 2));
        i = i + 1;
    end
    fclose(FID);
    
    fprintf('File contained %d blocks of data\n', i);
    
    fprintf('To access a value in cell "data", for example value (1,2) inside the second matrix, digit "data{2}(1,2)": ');
    data{2}(1,2)
    

    【讨论】:

    • 嗨,感谢您的帮助,但它没有工作并产生错误:从文件(第 1002 行,第 1 行)读取字符串时缓冲区溢出(bufsize = 4095)。使用“bufsize”选项。
    • 如果您想尝试一下,我已将数据集放在我的问题中
    • @MaryGh 我尝试使用文字处理器打开文件,但它看起来不像数字数据库,它看起来像非拉丁字母表中的文本
    • 请问可以在这个地址打开吗? mathworks.com/matlabcentral/answers/…
    • 你可以在matlab中打开.open gz文件并将文件拖放到里面,在matlab命令窗口里面就可以看到数据集了
    猜你喜欢
    • 2019-10-04
    • 2014-09-01
    • 1970-01-01
    • 2015-07-13
    • 2015-04-13
    • 1970-01-01
    • 2019-11-05
    • 2016-06-23
    • 1970-01-01
    相关资源
    最近更新 更多