MATLAB课程之第五章v3 文件操作(4)

描述

继续讲解!

通信网络

在数字信号处理领域,很多数据的保存形式都是文本文件!有了数据,这样就可以在计算机中完成半实物仿真了!什么是半实物仿真?就是仿真出来的结果基本和产品一致!那还有什么仿真?理论仿真!这个阶段的仿真只是用于验证理论是否可行!大家以后到了企业,必然会接触到这些概念!

通信网络 

注意!

If you plan to read the file with Microsoft Notepad, use ' ' instead of ' ' to move to a new line.

举例:如何把成绩单里面的成绩从高到低排列呢?

这可是日常工作中经常遇到的哦。学以致用!举例说明!

file_fid3 = fopen('d:score.txt','r');   % 读取成绩文件

for i = 1:5

    data1_name(i) = fscanf(file_fid3 ,'%s',1);

    data1_score(i) = fscanf(file_fid3 ,'%d',1);

end

fclose(file_fid3);

% 读取数据成功后,进行成绩排序。

[data2_score , score_index] = sort(data1_score,'descend');

file_fid4 = fopen('d:score_sort.txt','w');

for i = 1:5

    fprintf(file_fid4,'%6s %d ',student_name(score_index(i)), data2_score(i));

end

fclose(file_fid4);

通信网络

那要怎样才能读取呢?必须使用fscanf函数!还有其他读取文件的方式吗?有!!!

A = readmatrix(filename)

通过从文件中读取列向数据来创建数组。readmatrix 函数可自动检测文件的导入参数。这个函数原来用途这么广啊?大家已经在前面的文章中多次见到了!

readmatrix 基于文件的扩展名确定文件格式:

.txt、.dat 或 .csv(适用于带分隔符的文本文件)

.xls、.xlsb、.xlsm、.xlsx、.xltm、.xltx 或 .ods(适用于电子表格文件)

对于包含数值和文本混合数据的文件,默认情况下,readmatrix 将数据作为数值数组导入。这么好用的函数,大家一定要记住用法哦!

通信网络 

文件知识!

逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。

通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。建议使用WORDPAD或是记事本来开启,再则先另存新档后用EXCEL开启,也是方法之一。

.dat并不是一种标准文件。许多文件都使用这个扩展名,但文件含义不同。而许多数据分析软件也用这个扩展名保存数据。所以这要看具体的软件情况来定。

通信网络 

现在我首推使用readmatrix函数!

通信网络

通信网络

语法!

A = readmatrix(filename)

从文件中读取矩阵。readmatrix 基于文件的扩展名确定文件格式:.txt、.dat 或 .csv(适用于带分隔符的文本文件)、.xls、.xlsb、.xlsm、.xlsx、.xltm、.xltx 或 .ods(适用于电子表格文件)

readmatrix第一个参数是文件名。第二个参数指输出类型。如果不带这个参数,那么遇到字符串输出的结果是Nan值。本人非常喜欢用这个函数,简单直接和强大!

csvread函数还没有用过!文件的操作会涉及哪些函数呢?可以总结一下了。课程只是讲解了fopen和fwrite函数,那么fprintf和fclose函数呢?先一起来看看程序吧。实际编写操作是王道。这个程序可是学生写的哦!现在的他早已经毕业,也不知从事什么工作?多么希望我能多培养一些研发人员啊!科技进步才能真正改变世界!

通信网络

回顾过往!

通信网络

通信网络

通信网络

通信网络

再回首!

这是当年上我课的大一学生写的。他从最开始几乎不懂编程,到慢慢的能够入门。说明他很勤奋!就需要这样一步一步的实践,才能把工科之路走踏实了!大一的小李同学课后坚持学习,从最开始连简单的程序都看不懂,到后来慢慢的可以跟着我的步伐写程序,再到独立写程序了。很棒!但是他的英语底子很薄弱,一直没有补起来。这是一个遗憾,我当年一直想帮他补习英语,坚持了两周后,他放弃了。非常可惜!

学习就是这样的过程。从不懂到懂肯定需要花很多功夫。光靠看别人的程序就想提升自己?基本不可能。

那是做梦!

通信网络

通信网络

了解工科类专业的学习方法!

通信网络 

通信网络

通信网络

继续看视频吧!

接着让自己脑洞大开吧!第四天,继续给学生们直播讲课!后续还会讲,总共策划了有十几节课呢。

2023年12月,课堂上的讲解视频来了!互联网时代的特色,手机上也能听课。

请特别注意二进制文件的存储方式,比较一下和文本文件存储的差异。未完,待续!

通信网络

修订记录

20230418 完成初稿;

20230831 修订内容v2;

20231211 修订内容v3;


原文标题:MATLAB课程之第五章v3 文件操作(4)

文章出处:【微信公众号:通信工程师专辑】欢迎添加关注!文章转载请注明出处。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分