青島市網(wǎng)站建設(shè)公司百度官網(wǎng)認證申請
利用空閑時間把碎片化的MATLAB知識重新系統(tǒng)的學(xué)習(xí)一遍,為了在這個過程中加深印象,也為了能夠有所足跡,我會把自己的學(xué)習(xí)總結(jié)發(fā)在專欄中,以便學(xué)習(xí)交流。
素材來源“數(shù)學(xué)建模清風(fēng)”
特此說明:本博客的內(nèi)容只在于總結(jié)在使用matlab中的一些小技巧,并非教程,若想系統(tǒng)的學(xué)習(xí)MATLAB,也可以移步去鏈接中的視頻,觀看學(xué)習(xí)。也歡迎各位在留言區(qū)補充,糾錯,討論。
原素材和學(xué)習(xí)視頻地址:MATLAB教程新手入門篇(上部分)(數(shù)學(xué)建模清風(fēng)主講,適合零基礎(chǔ)同學(xué)觀看)_嗶哩嗶哩_bilibili?編輯https://www.bilibili.com/video/BV1dN4y1Q7Kt/?spm_id_from=333.337.search-card.all.click&vd_source=c06380c48bd362b3f90af762beebf543
元胞數(shù)組
1 概念
元胞數(shù)組(cell)作為一個獨立的存儲單元,可以將不同數(shù)據(jù)類型的數(shù)據(jù)存儲在同一個矩陣中。它是一種包含名為元胞的索引數(shù)據(jù)容器的數(shù)據(jù)類型,其中的每個元胞都可以包含任意類型的數(shù)據(jù)。元胞數(shù)組通常包含文本列表、文本和數(shù)字的組合或者不同大小的數(shù)值數(shù)組。
2 數(shù)據(jù)類型
下面介紹的元胞數(shù)組涉及到許多不同的數(shù)據(jù)類型,所以在這里先簡單的介紹以下各種數(shù)學(xué)類型。
數(shù)值類型(double):用來保存數(shù)值數(shù)據(jù),包括整型和浮點型,其中整型和浮點型還可以進步細分。我們創(chuàng)建的數(shù)值矩陣都是默認的雙精度浮點型。
文本類型:用來保存文本數(shù)據(jù),可細分為字符類型(char)和字符串類型(string)。
邏輯類型(logical):包含布爾型變量true和false,分別表示邏輯值1和邏輯值0。
元胞數(shù)組類型(cell):包含名為元胞的索引數(shù)據(jù)容器的數(shù)據(jù)類型,其中的每個元胞都可以包含任意類型的數(shù)據(jù)。。
結(jié)構(gòu)體數(shù)組類型(struct):帶有可以包含各種類型和大小的數(shù)據(jù)的命名字段的數(shù)組.
分類數(shù)組類型(categorical):用于保存分類型變量的數(shù)據(jù),例如性別、等級等.
日期時間類型(datetime):用于保存日期、時間的數(shù)據(jù).
表格類型(table):保存表格形式的數(shù)據(jù).
函數(shù)句柄(function handle):可用于引用和間接調(diào)用函數(shù).
3 創(chuàng)建元胞數(shù)組
創(chuàng)建元胞數(shù)組需要在英文模式下使用大括號?{} 。在元胞數(shù)組中,同行元素之間可以用逗號或者空格分隔,而行與行之間則通過分號或者回車鍵分隔。
A = {1:3, 'afabvab';char('afg','bva','adf') 0989;[12 34 32;2 2 43] [2;4]}
從上面可以看出元胞數(shù)組中保存的數(shù)據(jù)非常靈活,數(shù)據(jù)大小和數(shù)據(jù)類型都沒有限制。
并且在新版本的MATLAB中,會將元胞數(shù)組的保存在一個表格中,且每一個元素的類型都是靈活和,可以為任意數(shù)值類型。
既然有如此多的數(shù)據(jù)類型,為什么MATLAB還要采用元胞數(shù)組的類型去表達這些數(shù)值呢?
這種設(shè)計基于元胞數(shù)組的特性,允許在同一數(shù)組中存儲不同類型和大小的數(shù)據(jù)。例如,初始的元胞可能包含一個數(shù)值向量[123],后續(xù)可以輕松更換為其他向量、矩陣或不同類型的數(shù)據(jù)。
MATLAB中的元胞數(shù)組將每個元素視為獨立的元胞,使得修改時不會影響整體結(jié)構(gòu)。這種設(shè)計顯著增強了元胞數(shù)組的靈活性,成為處理不規(guī)則數(shù)據(jù)的理想選擇。
4 引用元胞數(shù)組
引用元胞數(shù)組有兩種方式:使用小括號()和使用大括號{}。這兩種引用方式有著不同的用途和效果。
下面用一個4x2的元胞數(shù)組來作為例子舉例:
?
A = {1:3, 'afabvab';true,7898;[12 34 32;2 2 43],[2;4];char('ad','vbh','bj'),5+8i}
(1)當(dāng)使用小括號()引用時
?當(dāng)使用小括號()來引用元胞數(shù)組時,我們實際上是在引用元胞數(shù)組中的元胞,因此小括號引用時返回的是一個元胞數(shù)組,而不是元胞中存儲的數(shù)據(jù)。
A = {1:3, 'afabvab';true,7898;[12 34 32;2 2 43],[2;4];char('ad','vbh','bj'),5+8i}
%第一行第二列位置的元素
A1 = A(1,2)
%第四行第一列位置的元素
A2 = A(4,1)
%使用class查看A1的數(shù)據(jù)類型
class(A1)
%查看A1的大小
size(A1)
%奇數(shù)行元素
A(1:2:end)
%線性索引為5的元素
A(5)
%按照線性索引的順序重新排列元胞數(shù)組
A(:)
(1)當(dāng)使用大括號 { } 引用時?
使用大括號{}引用元胞數(shù)組時,我們可以直接得到對應(yīng)位置的元胞數(shù)組中的數(shù)據(jù)。
A = {1:3, 'afabvab';true,7898;[12 34 32;2 2 43],[2;4];char('ad','vbh','bj'),5+8i}
%第一行第二列位置的元素
A1 = A{1,2}
%第四行第一列位置的元素
A2 = A{4,1}
%使用class查看A1的數(shù)據(jù)類型
class(A1)
%查看A1的大小
size(A1)
%第一行元胞中的數(shù)據(jù)
A{1,:}
% 使用兩個變量保存第一行元胞中的數(shù)據(jù)
[B,C] = A{1,:}
%返回變量數(shù)量小于引用的元胞數(shù)量
[x, y] = A{1:2,:}