繼續(xù)講解!
在數(shù)字信號(hào)處理領(lǐng)域,很多數(shù)據(jù)的保存形式都是文本文件!有了數(shù)據(jù),這樣就可以在計(jì)算機(jī)中完成半實(shí)物仿真了!什么是半實(shí)物仿真?就是仿真出來(lái)的結(jié)果基本和產(chǎn)品一致!那還有什么仿真?理論仿真!這個(gè)階段的仿真只是用于驗(yàn)證理論是否可行!大家以后到了企業(yè),必然會(huì)接觸到這些概念!
注意!
If you plan to read the file with Microsoft Notepad, use ' ' instead of ' ' to move to a new line.
舉例:如何把成績(jī)單里面的成績(jī)從高到低排列呢?
這可是日常工作中經(jīng)常遇到的哦。學(xué)以致用!舉例說(shuō)明!
file_fid3 = fopen('d:score.txt','r'); % 讀取成績(jī)文件
for i = 1:5
data1_name(i) = fscanf(file_fid3 ,'%s',1);
data1_score(i) = fscanf(file_fid3 ,'%d',1);
end
fclose(file_fid3);
% 讀取數(shù)據(jù)成功后,進(jìn)行成績(jī)排序。
[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函數(shù)!還有其他讀取文件的方式嗎?有!!!
A = readmatrix(filename)
通過(guò)從文件中讀取列向數(shù)據(jù)來(lái)創(chuàng)建數(shù)組。readmatrix 函數(shù)可自動(dòng)檢測(cè)文件的導(dǎo)入?yún)?shù)。這個(gè)函數(shù)原來(lái)用途這么廣啊?大家已經(jīng)在前面的文章中多次見(jiàn)到了!
readmatrix 基于文件的擴(kuò)展名確定文件格式:
.txt、.dat 或 .csv(適用于帶分隔符的文本文件)
.xls、.xlsb、.xlsm、.xlsx、.xltm、.xltx 或 .ods(適用于電子表格文件)
對(duì)于包含數(shù)值和文本混合數(shù)據(jù)的文件,默認(rèn)情況下,readmatrix 將數(shù)據(jù)作為數(shù)值數(shù)組導(dǎo)入。這么好用的函數(shù),大家一定要記住用法哦!
文件知識(shí)!
逗號(hào)分隔值(Comma-Separated Values,CSV,有時(shí)也稱(chēng)為字符分隔值,因?yàn)榉指糇址部梢圆皇嵌禾?hào)),其文件以純文本形式存儲(chǔ)表格數(shù)據(jù)(數(shù)字和文本)。純文本意味著該文件是一個(gè)字符序列,不含必須像二進(jìn)制數(shù)字那樣被解讀的數(shù)據(jù)。CSV文件由任意數(shù)目的記錄組成,記錄間以某種換行符分隔;每條記錄由字段組成,字段間的分隔符是其它字符或字符串,最常見(jiàn)的是逗號(hào)或制表符。
通常,所有記錄都有完全相同的字段序列。通常都是純文本文件。建議使用WORDPAD或是記事本來(lái)開(kāi)啟,再則先另存新檔后用EXCEL開(kāi)啟,也是方法之一。
.dat并不是一種標(biāo)準(zhǔn)文件。許多文件都使用這個(gè)擴(kuò)展名,但文件含義不同。而許多數(shù)據(jù)分析軟件也用這個(gè)擴(kuò)展名保存數(shù)據(jù)。所以這要看具體的軟件情況來(lái)定。
現(xiàn)在我首推使用readmatrix函數(shù)!
語(yǔ)法!
A = readmatrix(filename)
從文件中讀取矩陣。readmatrix 基于文件的擴(kuò)展名確定文件格式:.txt、.dat 或 .csv(適用于帶分隔符的文本文件)、.xls、.xlsb、.xlsm、.xlsx、.xltm、.xltx 或 .ods(適用于電子表格文件)
readmatrix第一個(gè)參數(shù)是文件名。第二個(gè)參數(shù)指輸出類(lèi)型。如果不帶這個(gè)參數(shù),那么遇到字符串輸出的結(jié)果是Nan值。本人非常喜歡用這個(gè)函數(shù),簡(jiǎn)單直接和強(qiáng)大!
csvread函數(shù)還沒(méi)有用過(guò)!文件的操作會(huì)涉及哪些函數(shù)呢?可以總結(jié)一下了。課程只是講解了fopen和fwrite函數(shù),那么fprintf和fclose函數(shù)呢?先一起來(lái)看看程序吧。實(shí)際編寫(xiě)操作是王道。這個(gè)程序可是學(xué)生寫(xiě)的哦!現(xiàn)在的他早已經(jīng)畢業(yè),也不知從事什么工作?多么希望我能多培養(yǎng)一些研發(fā)人員啊!科技進(jìn)步才能真正改變世界!
回顧過(guò)往!
再回首!
這是當(dāng)年上我課的大一學(xué)生寫(xiě)的。他從最開(kāi)始幾乎不懂編程,到慢慢的能夠入門(mén)。說(shuō)明他很勤奮!就需要這樣一步一步的實(shí)踐,才能把工科之路走踏實(shí)了!大一的小李同學(xué)課后堅(jiān)持學(xué)習(xí),從最開(kāi)始連簡(jiǎn)單的程序都看不懂,到后來(lái)慢慢的可以跟著我的步伐寫(xiě)程序,再到獨(dú)立寫(xiě)程序了。很棒!但是他的英語(yǔ)底子很薄弱,一直沒(méi)有補(bǔ)起來(lái)。這是一個(gè)遺憾,我當(dāng)年一直想幫他補(bǔ)習(xí)英語(yǔ),堅(jiān)持了兩周后,他放棄了。非常可惜!
學(xué)習(xí)就是這樣的過(guò)程。從不懂到懂肯定需要花很多功夫。光靠看別人的程序就想提升自己?基本不可能。
那是做夢(mèng)!
繼續(xù)看視頻吧!
接著讓自己腦洞大開(kāi)吧!第四天,繼續(xù)給學(xué)生們直播講課!后續(xù)還會(huì)講,總共策劃了有十幾節(jié)課呢。
2023年12月,課堂上的講解視頻來(lái)了!互聯(lián)網(wǎng)時(shí)代的特色,手機(jī)上也能聽(tīng)課。
請(qǐng)?zhí)貏e注意二進(jìn)制文件的存儲(chǔ)方式,比較一下和文本文件存儲(chǔ)的差異。未完,待續(xù)!
修訂記錄
20230418 完成初稿;
20230831 修訂內(nèi)容v2;
20231211 修訂內(nèi)容v3;
-
通信網(wǎng)絡(luò)
+關(guān)注
關(guān)注
22文章
2076瀏覽量
52890
原文標(biāo)題:MATLAB課程之第五章v3 文件操作(4)
文章出處:【微信號(hào):gh_30373fc74387,微信公眾號(hào):通信工程師專(zhuān)輯】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
云平臺(tái)連接(SC171開(kāi)發(fā)套件V3)
SC171開(kāi)發(fā)套件V3 技術(shù)資料
平臺(tái)介紹及基本使用(SC171開(kāi)發(fā)套件V3)
大模型實(shí)戰(zhàn)(SC171開(kāi)發(fā)套件V3)
AI功能(SC171開(kāi)發(fā)套件V3)
AI端側(cè)部署案例(SC171開(kāi)發(fā)套件V3)
AI端側(cè)部署開(kāi)發(fā)(SC171開(kāi)發(fā)套件V3)
軟件平臺(tái)的使用(SC171開(kāi)發(fā)套件V3)
華為-射頻基礎(chǔ)知識(shí)培訓(xùn)
《DNESP32S3使用指南-IDF版_V1.6》第五章 搭建開(kāi)發(fā)環(huán)境
迅為電子RK3588S開(kāi)發(fā)板第五章 Debian系統(tǒng)功能測(cè)試

淺析SDIO協(xié)議V2和V3版本的區(qū)別
《DNK210使用指南 -CanMV版 V1.0》第五章 編譯CanMV固件
【北京迅為】《stm32mp157開(kāi)發(fā)板嵌入式linux開(kāi)發(fā)指南》第五章 Ubuntu使用apt-get下載

第五章-PWM控制電機(jī) 開(kāi)源stm32循跡小車(chē)詳細(xì)制作過(guò)程(附加完全版代碼)

評(píng)論