《MATLAB從入門到放棄》打通 「矩陣」 障礙

2022-07-16 01:06:12 字數 4121 閱讀 4348

>

簡單矩陣的生成

>

隨機矩陣的生成

>

矩陣的大小

矩陣的拼接

矩陣的裁剪

矩陣的算術運算

矩陣的翻轉

a = [1 2; 3 5; 8 5; 4 6]

空格/逗號表示一列一列,分號/換行表示一行一行

b = 1:2:9

從1到9,每隔2個取乙個整數,即1,3,5,7,9  (2可以是整數/小數) 。2不寫,預設1

c = zeros (5,6)

5*6全0矩陣

d = ones(5,6)

生成5*6的全1矩陣

e = linspace (4,12,6)

生成4~12之間5個等分的數(小數/整數)。6不寫,預設100

f = logspace(1,3,5)

生成5個[10^1 , 10^3]之間的數。5不寫,預設50

g = eye(5,6)

生成5行6列對角線是1,其他是0的矩陣 。  

a = rand(5,6)

生成[0,1]範圍內的5*6的隨機小數矩陣

b= rand

只產生乙個[0,1]範圍內的隨機小數矩陣

c=m+(n-m)*rand(a, b)

在[m,n]範圍內生成a行b列小數矩陣

d= randi(m,a)

生成[1,m]範圍內的a*a整數矩陣

e = randi(a)

生成乙個[1,a]之間的整數

f = randi([-5,5],10,1)

生成[-5,5]範圍內的10*1的整數矩陣

d = size(a)

d=x y   x是a的行數,y是a的列數 。三維陣列也適合

[m,n] = size(a)

m是a的行數,n是a的列數

d = length(a)

返回矩陣a維度最大的維度數

d = numel(a)

返回矩陣中元素的總個數,行數 * 列數

a(m,n)

訪問a的m行n列

a(m)

訪問a的某個元素,按列

a(m:n)

訪問a的m~n的資料塊,按列

a(m:a:n)

在m~n的範圍內,每隔a個數訪問,按列

a([a,b,c..])

直接訪問第a,b,c ..個資料

a(a,:) / a(:,a)

a行所有資料 / a列所有資料

c = a([1,3],[4,2])

取第1行,第三行,第4列,第2列組合的矩陣

並且第4列為第一列

c= a(1:3:9,2:3:9)

取1,4,7行(1~9,每隔3),列也是如此

a(:,[a,b])

第a列和第b列的所有元素

a(a:b,[c,d])

a~b行和c列d列元素

a(find(b))

a和b是大小相同的矩陣,如果b的當前位置元素為非0,則取a中當前位置的元素

d = sub2ind(size(a),m,n)

d的值是a矩陣m行,n列對應的單下標索引

[m,n] = ind2sub(size(a),d)

a矩陣單下標d轉換成雙下標的m行,n列

c = cat(標識a,b)

a和b根據標識組合起來,得到新矩陣c

標識:1-各個矩陣豎著疊在一起(列數必須一樣) 

2-各個矩陣橫著連在一起(行數必須一樣) 

c=vertcat(a,b)

兩個矩陣豎著疊在一起,相當於cat標識為1的情況 。(列數必須一樣)

c = horzcat(a,b)

兩個矩陣橫著連在一起,相當於cat標識為2的情況 。(行數數必須一樣)

c=repmat(a,3,2)

矩陣a為乙個塊,以塊為基本單位拼成3行個塊,2列個塊的新矩陣

對角線拼接矩陣

c=kron(a,b)

紅框行數和列數與a相同,每個紅框裡面的矩陣行數和列數與b相同,每個紅框矩陣的元素是這個紅框代表的元素(第乙個紅框是a中的0元素,第二個紅框是a中的1元素....)*b中所有元素 

索引擴充套件

以最小的代價把超過索引的點(矩陣外的乙個點)包含進來

第1~3行所有列為空,也就是刪除第1~3行

a'

矩陣轉置

用函式transpose(a)也可以

用  .'  也是可以的

用ctranspose(a)也是可以的

inv(a)

a的逆矩陣

a*10

矩陣每個元素*10 ,同樣適應於 + - * /

a+b 、a-b、 a*b 、a/b、 a\b

參考數學中兩個矩陣的運算

a/b: a*inv(b)

a\b:inv(a)*b

a.*b、a./b(a除以b)、a.\b(b除以a)

兩個矩陣對應位置上的元素進行計算

a.^b、 a.^2、2.^a

對應位上元素進行計算

trace(a)

矩陣的跡,等於矩陣對角線元素的和,矩陣的特徵值之和

flipud(a)

矩陣 上下翻轉,預設中心軸為中間的那一行

共有偶數行的話直接翻轉,奇數行的話中間一行不動

fliplr(a)

矩陣 左右翻轉

rot90(a,k)

a按照逆時針旋轉90*k度,k預設為1

reshape(a,a,b)

把a調整成a行,b列 。 a的大小始終為a*b, 單下標索引調整前後不能變 

kmp從入門到放棄

標籤 kmp 擴充套件kmp 給你兩個字串,你需要回答,b串是否是a串的子串 a串是否包含b串 a aaaaaaaaaaaaaaaaaaaaaaaaaab b aaaaaaaab 最壞狀態 o mn 一般做法 for 列舉b在a串中的起始位置 for 向後比較ab是否相等 o n m 傳說中的kmp...

beego 從入門到放棄

beego 的專案基本都是通過 bee命令來建立的,所以在建立專案之前確保你已經安裝了 bee 工具和 beego。如果你還沒有安裝,那麼請查閱 beego 的安裝 和 bee 工具的安裝 現在一切就緒我們就可以開始建立專案了,開啟終端,進入 gopath src 所在的目錄 建立乙個專案名為201...

Flutter從入門到放棄

本篇主要記錄下flutter的學習路線。一 認識flutter 可以檢視這些文章 二 dart語言 1 認識dart語言 2 學習 從2018.02開始出現dart2,屬於強型別語言。介紹位址參考 三 開始flutter 網上也有很多部落格介紹了flutter怎麼安裝,但大多介紹不全,第一次安裝難免...