午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

MATLAB基礎(chǔ)速查---數(shù)據(jù)分析之導(dǎo)入

 Jason_Cheng3hi 2024-03-21 發(fā)布于江蘇

數(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ù)類型進行介紹。

1 文本文件

常見的文本文件為“.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)入后可以進入下面的界面,在該界面中有以下幾個方面值得注意:

圖片
圖中紅色框標(biāo)記內(nèi)容功能:1.選擇對導(dǎo)入文件的分割方式,當(dāng)前案例中默認是等寬分隔,也可以點擊“分隔文件”選擇以符號分隔;
圖片
2.選擇導(dǎo)入文本的數(shù)據(jù)范圍,默認為全部導(dǎo)入;在變量名稱行中,可以指定以哪一行作為整個文件的標(biāo)簽行。3.在輸出類型中可以指定你想將文件以哪種數(shù)據(jù)類型導(dǎo)入MATLAB中;對于文本類型數(shù)據(jù),有專門的的文本選項
圖片圖片
4.當(dāng)文本中存在無法導(dǎo)入的單元格時,MATLAB會將其默認替換為NaN;我們也可以通過選項將其所在的行或列刪除;此外除了無法導(dǎo)入的單元格以外,可能還會存在空單元格;最后除了NaNy以外,也可以手動修改為指定值。
圖片
圖片
5.前面四步設(shè)定完后,選擇導(dǎo)入數(shù)據(jù),即可將文件內(nèi)容轉(zhuǎn)為設(shè)定好的數(shù)據(jù)導(dǎo)入;

圖片

以上內(nèi)容為將本地數(shù)據(jù)導(dǎo)入MATLAB中,接下來就是將MATLAB中的變量寫入本地的文件中。在MATLAB中產(chǎn)生的數(shù)據(jù)都是“.mat”格式的文件,此時如果有需求將這些數(shù)據(jù)導(dǎo)出就需要利用到MATLAB中的導(dǎo)出文件函數(shù)。與前面的讀取文件函數(shù)相對應(yīng)的,寫入函數(shù)的相關(guān)信息如下所示:
1.將表文件寫入本地  % 函數(shù):writetable  % 語法    ① writetable(T)      將表T寫入逗號分隔的文本文件,如不指定格式,默認為txt文件格式    ② writetable(T,filename)      寫入具有filename指定的名稱和擴展名的文件    ③ writetable(___,Name,Value)      通過一個或多個Name,Value對組參數(shù)指定的其他選項將表寫入文件中,并且可以包含以前語法中的任何輸入?yún)?shù)
2.將時間表寫入本地 % 函數(shù):writetimetable % 語法 ① writetimetable(TT)      時間表TT寫入以逗號分隔的文本文件,如不指定格式,默認為txt文件格式 ② writetimetable(TT,filename)      寫入具有filename指定的名稱和擴展名的文件 ③ writetimetable(___,Name,Value)      在包括上述語法中任意輸入?yún)?shù)的同時,還可通過一個或多個Name,Value對組參數(shù)指定其他選項
3.將元胞數(shù)字寫入本地 % 函數(shù):writecell % 語法    ① writecell(C)      將元胞數(shù)組C寫入以逗號分隔的文本文件,如不指定格式,默認為txt文件格式 ② writecell(C,filename)      寫入具有filename指定的名稱和擴展名的文件    ③ writecell(___,Name,Value)      在包括上述語法中任意輸入?yún)?shù)的同時,還可通過一個或多個Name,Value對組參數(shù)指定其他選項
4.將矩陣寫入本地  % 函數(shù):writematrix % 語法    ① writematrix(A)      將同構(gòu)數(shù)組A寫入以逗號分隔的文本文件,如不指定格式,默認為txt文件格式 ② writematrix(A,filename)      寫入具有filename指定的名稱和擴展名的文件 ③ writematrix(___,Name,Value) 在包括上述語法中任意輸入?yún)?shù)的同時,還可通過一個或多個Name,Value對組參數(shù)指定其他選項
5.將文本寫入本地 % 函數(shù):writelines % 語法    ① writelines(lines,filename)      將指定的文本寫入名為的純文本文件,如不指定格式,默認為txt文件格式 ② writelines(lines,filename,Name=Value)     使用一個或多個名稱-值參數(shù)指定選項

圖片

由以上案例可以發(fā)現(xiàn),我們所保存的文件都以指定的格式存儲到了當(dāng)前目錄下。

2 圖像

在MATLAB中支持JPEG、TIFF、PNG以及其他常見格式的圖像文件,了解如何導(dǎo)入導(dǎo)出圖像文件對圖神經(jīng)網(wǎng)絡(luò)模型非常重要,在MATLAB中,針對圖像的導(dǎo)入導(dǎo)出函數(shù)十分簡潔明了。

函數(shù)
功能
imfinfo

有關(guān)圖形文件的信息

imread
從圖形文件讀取圖像
imwrite
將圖像寫入圖形文件
Ⅰ.imfinfo
%% 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等
圖片
圖片
Ⅱ.imread
%% imread函數(shù)% 語法  A = imread(filename)  從filename指定的文件讀取圖像,并從文件內(nèi)容推斷出其格式。如果filename為多圖像文件,則imread讀取該文件中的第一個圖像  A = imread(filename,fmt)  指定具有fmt指示的標(biāo)準文件擴展名的文件的格式。如果imread找不到具有filename指定的名稱的文件,則會查找名為filename.fmt的文件  A = imread(___,idx)  從多圖像文件讀取指定的圖像  A = imread(___,Name,Value)  可在前面語法中的任意輸入?yún)?shù)之外使用一個或多個名稱-值對組參數(shù)來指定格式特定的選項  [A,map] = imread(___)  將filename中的索引圖像讀入A,并將其關(guān)聯(lián)的顏色圖讀入map。圖像文件中的顏色圖值會自動重新調(diào)整到范圍[0,1]中  [A,map,transparency] = imread(___)  另外還返回圖像透明度。此語法僅適用于PNG、CUR和ICO文件。對于PNG文件,如果存在alpha通道,transparency會返回該alpha通道
圖片
圖片

圖片

大家可以關(guān)注一下在MATLAB中存儲的圖片的信息:

圖片

Ⅲ.imwrite
%% 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ù)
在前一個案例中,我們可以看到在MATLAB中圖片的存儲是以數(shù)組的形式存在的,因此要將MATLAB中的數(shù)組寫入本地保存為圖片,相應(yīng)的操作也非常簡單,只需要調(diào)用imwrite函數(shù),注意輸出參數(shù)中的圖像格式即可。

如下圖所示,寫入完成后會在當(dāng)前目錄下保存相應(yīng)的圖片:

圖片
3 視頻音頻

由于視頻和音頻很難通過公眾號文章演示,因此這里只將相應(yīng)的函數(shù)進行介紹,有需求或興趣的同學(xué)可以自行查閱文檔進行試驗,官方文檔鏈接如下:

https://www./help/releases/R2022b/matlab/audio-and-video.html
圖片
圖片

本期內(nèi)容對于在MATLAB中如何導(dǎo)入和導(dǎo)出文本、圖像和視頻音頻文件,這幾種數(shù)據(jù)類型基本囊括了我們科研工作中99%的數(shù)據(jù)類型。

但是在特定情況下,我們所要處理的數(shù)據(jù)集和文件集可能存在以下情況:

①現(xiàn)有內(nèi)存無法容納;

②需要很長處理時間的文件;

③許多小型文件的集合。

此時無法通過單一的方法完成,或者所需時間特別久,因此下一期將會對型文件集合和大型數(shù)據(jù)集的處理進行介紹。最后,碼字不易,大家動動小手點個贊吧~

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多