无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

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

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

分享到微博請遵守國家法律
吉隆县| 绥滨县| 西藏| 建平县| 福州市| 郯城县| 齐齐哈尔市| 噶尔县| 张掖市| 子长县| 临江市| 文安县| 云南省| 贺州市| 湖南省| 永靖县| 米林县| 德保县| 邛崃市| 湟中县| 邵东县| 卢龙县| 舒城县| 日土县| 息烽县| 离岛区| 仙游县| 刚察县| 郓城县| 雷州市| 孙吴县| 红桥区| 雷波县| 克山县| 衡水市| 巩留县| 平顶山市| 朔州市| 那坡县| 光泽县| 湟中县|