继续讲解!文件终于正确生成了!那如何把文件里面的数据从高到低排序呢?那首先要读取这个文件。
轮到fscanf函数出场了。
fscanf :Read data from text file。怎么用呢?看help里面的例子吧。
先简单介绍一下几个函数的用法。
matlab读取文本文件的几种函数。
1、load——适合读取纯数据文本;
2、importdata——只读取数据,自动省略数据格式前后的字符,超大文件不适合;
3、textread、textscan——适合读取行列规整的文本,会存到元胞中,可通过headerlines省略读取字段名(字符行);
4、csvread、dlmread——适合读取csv、xsl等文件格式文本;
5、fprintf、fscanf——适合读取复杂的文本(中英文、数字串混杂出现);
注意各个函数的适用范围。
好吧,该看程序了。
% 生成了文件,再读取文件。
file_fid1 = fopen('d:\score.txt','r');
formatSpec = '%s %d';
size_data = [2 Inf];
data = fscanf(file_fid1 ,formatSpec,size_data);
fclose(file_fid1);
查看data数组的值,好像不对啊?怎么没有显示字母呢?再去help看fscanf的使用说明。
If formatSpec contains a combination of numeric and character specifiers, then A is numeric, of class double, and fscanf converts each text characters to its numeric equivalent. This occurs even when formatSpec explicitly skips all numeric fields (for example, formatSpec is '%*d %s').
原来会发生数据类型转换。那怎么办?这就是算法工程师要解决的问题哦。
多思考,才能找到解决问题的办法!
未完,待续!