Matlab從入門到精通(七) 矩陣基本運算

2021-09-01 16:13:21 字數 3586 閱讀 9240

函式  sparse

格式  s = sparse(a)   %將矩陣a轉化為稀疏矩陣形式,即由a的非零元素和下標構成稀疏矩陣s。若a本身為稀疏矩陣,則返回a本身。

s = sparse(m,n)   %生成乙個m×n的所有元素都是0的稀疏矩陣

s = sparse(i,j,s)   %生成乙個由長度相同的向量i,j和s定義的稀疏矩陣s,其中i,j是整數向量,定義稀疏矩陣的元素位置(i,j),s是乙個標量或與i,j長度相同的向量,表示在(i,j)位置上的元素。

s = sparse(i,j,s,m,n)         %生成乙個m×n的稀疏矩陣,(i,j)對應位置元素為si,m = max(i)且n =max(j)。

s = sparse(i,j,s,m,n,nzmax)    %生成乙個m×n的含有nzmax個非零元素的稀疏矩陣s,nzmax的值必須大於或者等於向量i和j的長度。

【例】>> x = [1 3 5;5 -9 0; 32 1 18];

>> s = sparse(x)

s =(1,1)        1

(2,1)        5

(3,1)       32

(1,2)        3

(2,2)       -9

(3,2)        1

(1,3)        5

(3,3)       18

32.1稀疏矩陣非零元素的個數

函式  nnz

格式  n = nnz(x)    %返回矩陣x中非零元素的個數

32.2稀疏矩陣的非零元素

函式  nonzeros

格式  s = nonzeros(a)    %返回矩陣a中非零元素按列順序構成的列向量

32.3稀疏矩陣非零元素的記憶體分配

函式  nzmax

格式  n = nzmax(s)    %返回非零元素分配的記憶體總數n

32.4稀疏矩陣的存貯空間

函式  spalloc

格式  s = spalloc(m,n,nzmax)   %產生乙個m×n階只有nzmax個非零元素的稀疏矩陣,這樣可以有效減少存貯空間和提高運算速度。

32.5稀疏矩陣的非零元素應用

函式  spfun

格式  f = spfun('function',s)   %用s中非零元素對函式'function'求值,如果'function'不是對稀疏矩陣定義的,同樣可以求值。

32.6把稀疏矩陣的非零元素全換為1

函式  spones

格式  r = spones(s)    %將稀疏矩陣s中的非零元素全換為1

32.7  畫稀疏矩陣非零元素的分布圖形

函式  spy

格式  spy(s)   %畫出稀疏矩陣s中非零元素的分布圖形。s也可以是滿矩陣。

spy(s,markersize)            % markersize為整數,指定點陣大小。

spy(s,'linespec')            %'linespec'指定繪圖標記和顏色

spy(s,'linespec',markersize)   %引數與上面相同

函式:trace

例:>> x = [1 3 5;5 -9 0; 32 1 18];

>> trace(x)

ans =

10cat    向量連線    reshape    改變矩陣行列個數

diag    建立對角矩陣或獲取對角向量    rot90    將矩陣旋轉90度

fliplr    按左右方向翻轉矩陣元素    tril    取矩陣的下三角部分

flipud    按上下方向翻轉矩陣元素    triu    取矩陣的上三角部分

repmat    複製並排列矩陣函式

35.1帕斯卡矩陣

我們知道,二次項(x+y)n展開後的係數隨n的增大組成乙個三角形表,稱為楊輝三角形。由楊輝三角形表組成的矩陣稱為帕斯卡(pascal)矩陣。函式pascal(n)生成乙個n階帕斯卡矩陣。注:矩陣的對角線上元素即為(x+y)^n的展開項的係數

35.2范得蒙矩陣

范得蒙(vandermonde)矩陣最後一列全為1,倒數第二列為乙個指定的向量,其他各列是其後列與倒數第二列的點乘積。可以用乙個指定向量生成乙個范得蒙矩陣。在matlab中,函式vander(v)生成以向量v為基礎向量的范得蒙矩陣。例如,a=vander([1;2;3;5])即可得到上述范得蒙矩陣。

35.3希爾伯特矩陣

在matlab中,生成希爾伯特矩陣的函式是hilb(n)。

使用一般方法求逆會因為原始資料的微小擾動而產生不可靠的計算結果。matlab中,有乙個專門求希爾伯特矩陣的逆的函式invhilb(n),其功能是求n階的希爾伯特矩陣的逆矩陣。

35.4託普利茲矩陣

託普利茲(toeplitz)矩陣除第一行第一列外,其他每個元素都與左上角的元素相同。生成託普利茲矩陣的函式是toeplitz(x,y),它生成乙個以x為第一列,y為第一行的託普利茲矩陣。這裡x, y均為向量,兩者不必等長。toeplitz(x)用向量x生成乙個對稱的託普利茲矩陣。例如

t=toeplitz(1:6)

compan    生成伴隨矩陣    invhilb    生成逆hilbert矩陣

gallery    生成一些小的測試矩陣    magic    生成magic矩陣

hadamard    生成hadamard矩陣    pascal    生成pascal矩陣

hankel    生成hankel矩陣    toeplitz    生成toeplitz矩陣

hilb    生成hilbert矩陣    wilkinson    生成wilkinson特徵值測試矩陣

向量:v = [1 2 3 4 5 6 7 8 9 0];

【例一】:取向量v的前三個元素

>> v(1:3)

ans =

1     2     3

【例二】:取向量的後6個元素

>> v(end-5:end)

ans =

5     6     7     8     9     0

【例三】:向量轉置

使用v』或者v(:)都可以實現轉置操作

【例四】:從第乙個元素開始,步長為2,直到最後乙個元素

>> v(1:2:end)

ans =

1     3     5     7     9

【例五】:從最後乙個元素開始,步長為-2,直到第乙個元素

>> v(end:-2:1)

ans =

0     8     6     4     2

【例六】:取出第1,4,6個元素

>> v([1,4,6])

ans =

1     4     6

v為行向量或者列向量,則sum(v)表示求向量中的所有元素之和;

a為矩陣,則sum(a)矩陣的列求和,返回乙個行向量;

a為矩陣,則sum(sum(a))求矩陣所有元素之和。

v = ;%定義空向量

a = ;%定義空矩陣

norm(a,1)         %矩陣a的第1範數

norm(a,2)    %矩陣a的第2範數

norm(a,』inf』)    %矩陣a的

Matlab從入門到精通(四)

student.test 99 56 96 87 67 69 87 76 92 student.name wu qing student.weight 68 student.height 1.72 student.num 2003214091 student.add school of civil ...

Nginx從入門到精通

1 nginx配置檔案載入機制 採用nginx s reload命令載入nginx的配置檔案,master程序讀取配置檔案,建立新的worker程序,向老的worker程序傳送shutdown命令。老的worker程序不再接受新的請求,待老的請求處理完成後,就會停掉。2 location匹配機制 當...

scrot 從入門到精通

無論是撰寫技術教程,還是展示桌面或應用,恐怕 scrot 都是必不可少的工具。scrot 是螢幕抓圖工具中的 皎皎 佼佼者,它小巧而不失為強大,精練而不缺少靈活。scrot 主要用在命令列下,它使用 imlib2 庫來抓取並儲存影象。在 ubuntu 中,可以使用sudo apt get insta...