最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

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 中結構數組在靈活處理多段多維數據上的應用的評論 (共 條)

分享到微博請遵守國家法律
灌南县| 射洪县| 吉林市| 克拉玛依市| 渝北区| 酉阳| 莆田市| 句容市| 丹阳市| 佳木斯市| 卓尼县| 潞西市| 安阳县| 永春县| 中山市| 辰溪县| 龙川县| 平南县| 化州市| 磴口县| 灵寿县| 新宁县| 崇明县| 普定县| 东源县| 修文县| 嵊泗县| 牟定县| 麦盖提县| 永福县| 沙湾县| 天水市| 白沙| 米泉市| 涞源县| 襄汾县| 故城县| 肇庆市| 游戏| 光泽县| 东乌珠穆沁旗|