matlab学习笔记:读取数据

读取16进制数据文件

       函数介绍:FileName是数据文件名全称(只针对txt文件类型),返回值A为读取到的16进制转化为10进制值的矩阵。

       处理细节:数据允许有空行,用换行符作为每一行的间断,每一行元素可以不一样,缺失的用值0填充。不做其他差错处理,如包含非法字符等。

function A = getHexData(FileName)
    fid = fopen(FileName, 'r');                 % 打开文件
    
    i = 0;
    while  ~feof(fid)                           % 一直读取到文件末尾
        s = fgetl(fid);                         % 读取一行数据
        if isempty(s), continue, end            % 空行跳过
        i = i + 1;
        sline = sscanf(s, '%x', size(s, 2))';   % 得到一行的数据值
        for j = 1 : size(sline, 2)
            A(i, j) = sline(j);                 % 得到数据
        end
    end
    
    fclose(fid);                                % 关闭文件
end

       原理补充:此处sscanf的第三个参数是读取的最大元素数,我用size(s, 2),此值肯定不小于总的数据数,即相当于读取所有数据。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

你可能感兴趣的:(matlab学习笔记:读取数据)