1.說明
元胞數組的子數組或元素也是元胞型的,其元素內容(值)是本身類型,因此,在添、刪、改和連接處理時,必須明確每個元素的值的類型和大小,否則,編程報錯是不可避免的了。看本文前建議先看上篇Matlab自學筆記二十九:元胞數組的創建、索引和轉換方法
2.元胞數組的修改
程序示例如下:
b={1,2,magic(3)
??? 'a',["a","b"],[]}? %理解:元胞數組是大箱子,用大括號表示,內部的元素是盒子,盒子也是元胞型,盒子與箱子遵循Matlab預設規則,打開盒子往里面裝內容,內容可以是任意大小任意格式的內容。
% b(1,1)=100? %元胞數組數據修改,小括號索引出第1行第1列元胞型,100雙精度型無法賦值(小括號索引到盒子),報錯
b(1,1)={100}? %賦值也應包裝成盒子(元胞型)再賦值
b{1,1}=100? %(大括號索引到盒子的內容)所以使用任意數值賦值即可
3.元胞數組的添加、刪除
程序示例如下:
b={1,2,magic(3)
? ??'a',["a","b"],[]}
b(3,4)={8}? %b本身是2行3列,如此擴展為3行4列,第3行第4列為{8}其余擴展元素默認空矩陣填充
% b(1,1)=[]? %報錯,刪除1個元素無法保持矩陣矩形
b(end,:)=[]? %最后一行刪除
b{1,1}=[]? %大括號索引到盒子里的內容,并置為空(刪除),盒子仍存在
4.元胞數組的連接(重要)
元胞數組的連接有兩種方式:
(1)中括號[],遵從常用的矩陣連接的規則,連接的矩陣在類型和大小上有一定的匹配要求,若不滿足,會報錯:大小或者類型不一致;
(2)大括號{},連接后組成更大的元胞數組,特點是,連接的數組可以是任意類型和任意大小,缺點是,數據的運算和處理等不如矩陣數組那樣靈活;
程序示例如下:
b={1,2,magic(3)
??? 'a',["a","b"],[]}
%中括號連接:把元胞數組內某些元素進行重排
[{1 2 3},{'a'}]? %水平連接
% [{1 2 3};{'a'}]? %列數不同,報錯
[{1 2 3};{'a',[],[]}]? %列數相同
%大括號連接:把元胞數組視為一個元素進行重組(可理解為元胞數組的嵌套,元胞數組內可容納任意類型,包括元胞型自身)
{{1 2 3},{'a'}} ?%水平連接
{{1 2 3};{'a'}}? %縱向排列
{{1 2 3},{'a'},{},[],string(missing),uint16(10)}? %只要占用元胞數組內的盒子,都會顯示
相關內容推薦
31.6 Matlab繪制條形圖柱狀圖,改變單個柱的顏色,堆疊顯示,改變線型線寬
66.53 MatlabApp課設作業:簡易一元高次方程解算顯示器
22.13 Matlab非線性函數擬合問題lsqcurvefit使用最小二乘法求解非線性函數擬合問題曲線擬合/數據擬合/任意形式函數的擬合
21.1 一節講透:插值入門,以及Matlab編程實現
38.1 從圖像曲線上提取坐標數據:測量長度,測量角度、圓心和半徑
66.20 文獻上的圖片是怎么用Matlab做出來的/數學建模必備技能
1.1 Matlab速成寶藏課/數學建模必備入門視頻
45.1 一個實例入門Matlab深度學習|卷積神經網絡
47.1/Matlab遺傳算法/概念/原理/編程演示數學建模
End