五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網 會員登陸 & 注冊

MATLAB 中結構數組在靈活處理多段多維數據上的應用

2021-02-07 23:34 作者:曉霧喵  | 我要投稿

問題描述

假設有若干個班的學生多科目成績表,每個班的學生個數不等,考試科目都相同,要求使用 MATLAB 按班級存儲成績表,并遍歷所有數據。

這個問題涉及到多個維度的多段數據存儲,對于普通的編程語言來說,實現起來非常容易。

C/C++ 可以構造一個結構體儲存各個科目的成績,

Python 可以使用二維數組與字典存儲,

可以看出,這個問題最終會轉換成一個三維信息的問題,最外層是各個班級、內層是各個科目、最里層是某個科目具體到某個學生的成績。經過實踐,我嘗試了以下的幾種解決方案。

解決方案

多維數組

MATLAB 可以創(chuàng)建多維數組,如下采用直接賦值的方式創(chuàng)建一個三維數組

那么用多維數組能實現最開始提出的問題嗎?答案是否定的,因為 MATLAB 是將所有數據都看作“矩陣”,而問題中各個班級的學生個數不一樣,構造三維矩陣時勢必會按照最多的個數作為維度,維度不足的數組用0填充,這樣就無法區(qū)分填充的數據與成績?yōu)?的數據,而且給遍歷正確的個數造成困難。此外,當考試科目更多時,用下標來選取對應科目的成績在編程時很容易出錯。

結構數組

結構數組是 MATLAB 中的特色數據類型,相當于 Python 的“數組[字典]”結構。也就是說結構數組本質是一個“數組”,數組的每個元素可以指定若干個名稱,每個名稱對應一個值,而這個值可以是不同類型、不同維度的數據。這樣就要比多維數組要求其各個行、列必須是類型相同、維度(長度)相同具有很大的優(yōu)勢。

創(chuàng)建結構數組的方法

  1. 可以先聲明再賦值(也可以不用寫聲明語句,直接賦值)

  1. 也可以用struct()函數創(chuàng)建

struct(field1,value1,...,fieldN,valueN)

假如,要讀取第1個班級,course2課程的第2個學生的成績,按下面的語句執(zhí)行即可

假如要遍歷整個結構數組,用length()取得結構數組的長度,for循環(huán)執(zhí)行即可

單位數組(元胞數組)

與結構數組類似,單位數組也可以在每個元素存儲不同類型的數據。但單元數組是用下標來定位,使用起來不如結構數組方便。


MATLAB 中結構數組在靈活處理多段多維數據上的應用的評論 (共 條)

分享到微博請遵守國家法律
正阳县| 江津市| 青海省| 饶河县| 柘城县| 丰台区| 富阳市| 北碚区| 克拉玛依市| 安西县| 和政县| 乌兰察布市| 建阳市| 双鸭山市| 渑池县| 永川市| 石楼县| 宜春市| 星子县| 任丘市| 大宁县| 五原县| 江都市| 宜兰市| 西乌| 兴海县| 榆树市| 岳阳县| 桐乡市| 嵊州市| 通山县| 扎鲁特旗| 松原市| 南郑县| 平南县| 明水县| 阿尔山市| 浏阳市| 盘山县| 黄浦区| 凌源市|