數(shù)據(jù)分析是建模前的第一步,數(shù)據(jù)集的質(zhì)量直接決定了所建立模型的質(zhì)量。數(shù)據(jù)的分析包含了數(shù)據(jù)的導(dǎo)入和導(dǎo)出、訪問大型文件和大樣本數(shù)據(jù)集、數(shù)據(jù)的預(yù)處理、數(shù)據(jù)的分析四個維度。接下的文章將詳細為大家剖析在MATLAB中,如何對數(shù)據(jù)進行處理和分析,由于篇幅限制,因此本篇文章中將首先介紹數(shù)據(jù)的導(dǎo)入和導(dǎo)出。 在特定的領(lǐng)域內(nèi),往往一次性需要處理的數(shù)據(jù)可達萬級及以上,此時就需要用到本小節(jié)所介紹的內(nèi)容。針對不同的領(lǐng)域需求,所使用的數(shù)據(jù)格式也存在不同,因此需要針對于不同的數(shù)據(jù)類型進行介紹。 常見的文本文件為“.xls”、“.xlsx”、“.csv”和“.txt”幾種,針對于文本文件的導(dǎo)入方式大體上可以分為兩類: Ⅰ. 通過函數(shù)導(dǎo)入 以下代碼中的案例都是MATLAB中自帶的數(shù)據(jù)集,有興趣的同學(xué)可以用自己的數(shù)據(jù)集做嘗試。 1.將文件以表格式寫入MATLAB % 函數(shù):readtable % 語法 ① T = readtable(filename) 通過從文件中讀取列向數(shù)據(jù)來創(chuàng)建表 ② T = readtable(filename,opts) 使用導(dǎo)入選項 opts 創(chuàng)建表 ③ T = readtable(___,Name,Value) 基于文件創(chuàng)建一個表,并通過一個或多個名稱-值對組參數(shù)指定其他選項 2.將文件以時間表格式寫入MATLAB % 函數(shù):readtimetable % 語法 ① TT = readtimetable(filename) 通過從文件中讀取列向數(shù)據(jù)來創(chuàng)建時間表 ② TT = readtimetable(filename,opts) 使用導(dǎo)入選項 opts ③ TT = readtimetable(___,Name,Value) 基于文件創(chuàng)建一個時間表,并通過一個或多個名稱-值對組參數(shù)指定其他選項
3.將文件以元胞格式寫入MATLAB % 函數(shù):readcell % 語法 ① C = readcell(filename) 通過從文件中讀取列向數(shù)據(jù)來創(chuàng)建元胞數(shù)組 ② C = readcell(filename,opts) 使用導(dǎo)入選項 opts ③ C = readcell(___,Name,Value) 基于文件創(chuàng)建元胞數(shù)組,并通過一個或多個名稱-值對組參數(shù)指定其他選項
4.將文件以矩陣格式寫入MATLAB % 函數(shù):readmatrix % 語法 ① A = readmatrix(filename) 通過從文件中讀取列向數(shù)據(jù)來創(chuàng)建數(shù)組 ② A = readmatrix(filename,opts) 使用導(dǎo)入選項 opts ③ A = readmatrix(___,Name,Value) 基于文件創(chuàng)建一個數(shù)組,并通過一個或多個名稱-值對組參數(shù)指定其他選項
5.將文件以文本格式寫入MATLAB % 函數(shù):readlines % 語法 ① S = readlines(filename) 通過讀取一個包含 N 行的文件創(chuàng)建一個 N×1 字符串?dāng)?shù)組 ② S = readlines(filename,Name,Value) 基于文件創(chuàng)建一個字符串?dāng)?shù)組,并通過一個或多個名稱-值對組參數(shù)指定其他選項 6.此外,還有一個“importdata”函數(shù)可以不區(qū)分數(shù)據(jù)類型,將數(shù)據(jù)導(dǎo)入MATLAB中 可以參考以下文檔:https://www./help/releases/R2022b/matlab/ref/importdata.html Ⅱ . 通過工具導(dǎo)入 在MATLAB界面中,設(shè)有交互式工具導(dǎo)入窗口: ①點擊下圖紅框按鈕,選擇你要打開的文件選擇導(dǎo)入; ②導(dǎo)入后可以進入下面的界面,在該界面中有以下幾個方面值得注意:
2.選擇導(dǎo)入文本的數(shù)據(jù)范圍,默認為全部導(dǎo)入; 在變量名稱行中,可以指定以哪一行作為整個文件的標(biāo)簽行。 3.在輸出類型中可以指定你想將文件以哪種數(shù)據(jù)類型導(dǎo)入MATLAB中; 對于文本類型數(shù)據(jù),有專門的的文本選項
5.前面四步設(shè)定完后,選擇導(dǎo)入數(shù)據(jù),即可將文件內(nèi)容轉(zhuǎn)為設(shè)定好的數(shù)據(jù)導(dǎo)入;
由以上案例可以發(fā)現(xiàn),我們所保存的文件都以指定的格式存儲到了當(dāng)前目錄下。 在MATLAB中支持JPEG、TIFF、PNG以及其他常見格式的圖像文件,了解如何導(dǎo)入導(dǎo)出圖像文件對圖神經(jīng)網(wǎng)絡(luò)模型非常重要,在MATLAB中,針對圖像的導(dǎo)入導(dǎo)出函數(shù)十分簡潔明了。
%% imfinfo函數(shù) % 語法 info = imfinfo(filename) 返回一個結(jié)構(gòu)體,該結(jié)構(gòu)體的字段包含有關(guān)圖形文件filename中的圖像的信息 info = imfinfo(filename,fmt) 在MATLAB找不到名為filename的文件時另外查找名為filename.fmt的文件; “fmt”表示的是圖片的格式,如png、jpg等
%% imwrite函數(shù) % 語法 imwrite(A,filename) 將圖像數(shù)據(jù)A寫入filename指定的文件,并從擴展名推斷出文件格式 imwrite(A,map,filename) 將A中的索引圖像及其關(guān)聯(lián)的顏色圖map寫入由filename指定的文件 imwrite(___,fmt) 以fmt指定的格式寫入圖像,無論filename中的文件擴展名如何 imwrite(___,Name,Value) 使用一個或多個名稱-值參數(shù),以指定GIF、HDF、JPEG、PBM、PGM、PNG、PPM和TIFF文件輸出的其他參數(shù) 如下圖所示,寫入完成后會在當(dāng)前目錄下保存相應(yīng)的圖片: 由于視頻和音頻很難通過公眾號文章演示,因此這里只將相應(yīng)的函數(shù)進行介紹,有需求或興趣的同學(xué)可以自行查閱文檔進行試驗,官方文檔鏈接如下:
本期內(nèi)容對于在MATLAB中如何導(dǎo)入和導(dǎo)出文本、圖像和視頻音頻文件,這幾種數(shù)據(jù)類型基本囊括了我們科研工作中99%的數(shù)據(jù)類型。 但是在特定情況下,我們所要處理的數(shù)據(jù)集和文件集可能存在以下情況: ①現(xiàn)有內(nèi)存無法容納; ②需要很長處理時間的文件; ③許多小型文件的集合。 此時無法通過單一的方法完成,或者所需時間特別久,因此下一期將會對大型文件集合和大型數(shù)據(jù)集的處理進行介紹。最后,碼字不易,大家動動小手點個贊吧~ |
|