首页/文章/ 详情

MATLAB基础课程 第六章 走进算法之门(9)

3年前浏览5398

继续讲解!文件终于正确生成了!那如何把文件里面的数据从高到低排序呢?那首先要读取这个文件。

轮到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').

原来会发生数据类型转换。那怎么办?这就是算法工程师要解决的问题哦。

图片

图片

多思考,才能找到解决问题的办法!
未完,待续!

800-400-1.jpg-revHEAD.svn004.tmp.jpg

电子航天航空通信通用MATLAB
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2021-04-15
最近编辑:3年前
算法工匠
博士后 | 高级工程师 诚信做事 认真讲课 传播知识
获赞 395粉丝 2576文章 320课程 40
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈