日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MATLAB 基础知识 数据类型 分组数组 创建分类数组

發布時間:2023/12/16 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MATLAB 基础知识 数据类型 分组数组 创建分类数组 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文說明如何創建分類數組。categorical 是一個數據類型,用來存儲值來自一組有限離散類別的數據。這些分類可以采用自然排序,但并不要求一定如此。分類數組可用來有效地存儲并方便地處理數據,同時還為數值賦予有意義的名稱。分類數組通常用在表中以定義由行構成的組。

默認情況下,分類數組包含的是未采用數學排序的類別。例如,離散的寵物類別集合 {‘dog’ ‘cat’ ‘bird’} 未采用有意義的數學排序,因此 MATLAB 使用字母排序 {‘bird’ ‘cat’ ‘dog’}。有序分類數組包含的類別具有有意義的數學排序。例如,離散的大小類別集合 {‘small’, ‘medium’, ‘large’} 采用數學排序 small < medium < large。

當您基于字符向量元胞數組或字符串數組創建分類數組時,前導空格和尾隨空格將被刪除。例如,如果您將文本 {’ cat’ 'dog '} 指定為類別,則在將它們轉換為類別時,它們將變成 {‘cat’ ‘dog’}。

基于字符向量元胞數組創建分類數組

您可以使用 categorical 函數基于數值數組、邏輯數組、字符串數組、字符向量元胞數組或現有的分類數組來創建分類數組。

創建一個包含新英格蘭地區的各州名的 1×11 字符向量元胞數組。

state = {'MA','ME','CT','VT','ME','NH','VT','MA','NH','CT','RI'};

將元胞數組 state 轉換為未采用數學排序的分類數組。

state = categorical(state) state = 1x11 categoricalColumns 1 through 9MA ME CT VT ME NH VT MA NH Columns 10 through 11CT RI class(state) ans = 'categorical'

列出變量 state 中的離散類別。

categories(state) ans = 6x1 cell{'CT'}{'MA'}{'ME'}{'NH'}{'RI'}{'VT'}

這些類別按字母順序列出。

基于字符向量元胞數組創建有序分類數組

創建一個大小包含八個對象的 1×8 字符向量元胞數組。

AllSizes = {'medium','large','small','small','medium',...'large','medium','small'};

元胞數組 AllSizes 具有三個相異值:‘large’、‘medium’ 和 ‘small’。使用字符向量元胞數組時,沒有方便的方式來指示 small < medium < large。

將元胞數組 AllSizes 轉換為有序分類數組。使用 valueset 指定用于定義類別的值 small、medium 和 large。對于有序分類數組,所指定的第一個類別是最小的,最后一個類別是最大的。

valueset = {'small','medium','large'}; sizeOrd = categorical(AllSizes,valueset,'Ordinal',true) sizeOrd = 1x8 categoricalColumns 1 through 6medium large small small medium large Columns 7 through 8medium small class(sizeOrd) ans = 'categorical'

分類數組 sizeOrd 中值的順序保持不變。

列出分類變量 sizeOrd 中的離散類別。

categories(sizeOrd) ans = 3x1 cell{'small' }{'medium'}{'large' }

這些類別按指定的順序列出以匹配數學排序 small < medium < large。

基于分 bin 數值數據創建有序分類數組

創建由 0 到 50 之間的 100 個隨機數構成的向量。

x = rand(100,1)*50;

使用 discretize 函數,通過對 x 的值進行 bin 劃分,創建一個分類數組。將 0 到 15 之間的所有值歸入第一個 bin,15 到 35 之間的所有值歸入第二個 bin,35 到 50 之間的所有值歸入第三個 bin。每個 bin 包括左端點,但不包括右端點。

catnames = {'small','medium','large'}; binnedData = discretize(x,[0 15 35 50],'categorical',catnames);

binnedData 是一個包含三個類別的 100×1 有序分類數組,其中 small < medium < large。

使用 summary 函數輸出每個類別中的元素數量。

summary(binnedData)small 30 medium 35 large 35

基于字符串數組創建分類數組

從 R2016b 開始,您可以使用 string 函數創建字符串數組,并將字符串數組轉換為分類數組。

創建一個包含行星名稱的字符串數組。

str = string({'Earth','Jupiter','Neptune','Jupiter','Mars','Earth'}) str = 1x6 string"Earth" "Jupiter" "Neptune" "Jupiter" "Mars" "Earth"

將 str 轉換為分類數組。

planets = categorical(str) planets = 1x6 categoricalEarth Jupiter Neptune Jupiter Mars Earth

將缺失的元素添加到 str,并將其轉換為分類數組。在 str 包含缺失值的位置,planets 包含未定義值。

str(8) = 'Mars' str = 1x8 stringColumns 1 through 6"Earth" "Jupiter" "Neptune" "Jupiter" "Mars" "Earth"Columns 7 through 8<missing> "Mars"planets = categorical(str) planets = 1x8 categoricalColumns 1 through 6Earth Jupiter Neptune Jupiter Mars Earth Columns 7 through 8<undefined> Mars

總結

以上是生活随笔為你收集整理的MATLAB 基础知识 数据类型 分组数组 创建分类数组的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。