matlab中函式學習 11月14日

2022-07-12 09:54:13 字數 2503 閱讀 9217

1.記錄陣列元素個數函式:numel()

解釋:number of array

相當於 prod(size(a))

2、新增路徑:

addpath('.\3rdparty\ksvd');

3、padarray

功能:填充影象或填充陣列。

用法:b = padarray(a,padsize,padval,direction)

a為輸入影象,b為填充後的影象,padsize給出了給出了填充的行數和列數,通常用[r c]來表示。padval和direction分別表示填充方法和方向。它們的具體值和描述如下:

padval:'symmetric'表示影象大小通過圍繞邊界進行映象反射來擴充套件;

'replicate'表示影象大小通過複製外邊界中的值來擴充套件;

'circular'影象大小通過將影象看成是乙個二維週期函式的乙個週期來進行擴充套件。

direction:'pre'表示在每一維的第乙個元素前填充;

'post'表示在每一維的最後乙個元素後填充;

'both'表示在每一維的第乙個元素前和最後乙個元素後填充,此項為預設值。

若參量中不包括direction,則預設值為'both'。若參量中不包含padval,則預設用零來填充。若參量中不包括任何引數,則預設填充為零且方向為'both'。在計算結束時,影象會被修剪成原始大小。

舉例:a = [1 2; 3 4];

b = padarray(a,[3 2],'replicate','post')

4. im2col

函式原型:b = im2col(a,[m n],block_type)

功        能:將矩陣a分為m×n的子矩陣,再將每個子矩陣作為b的一列。

(1)當block_type為distinct時,將a分解為互不重疊的子矩陣,並轉換成列。若不足m×n,以0補足。

例:                          a=

15   36   42   40   67   88   32   50

59   74   27   81   44   59   53   15

26   39   20   76   83   15    9    5

4   68   82   38   77   20   11   85

75   70   43   22   17   41   14   56

24   44   89   79   86   75   68   93

44    2   39   95   99   83   50   70

69   33   77   33   51   79   19   58

b=im2col(a, [3, 3], 'distinct')為:

154     44   40   38   95   32   11   50

5975   69   81   22   33   53   14   19

2624    0     76   79    0    9   68      0

3668    2     67   77   99   50   85   70

7470   33    44   17   51   15   56   58

3944    0     83   86    0     5    93     0

4282   39    88   20   83     0     0     0

2743   77    59   41   79     0     0     0

2089    0     15   75    0     0      0     0

(2)當block_type為sliding時,將a分解平移一行(列)的mxn的子矩陣,並轉換成列。

例:                             a=

21   11   62

95   14   57

8    17    5

b=im2col(a, [2, 2], 'sliding')為

21   95   11   14

95    8   14   17

11   14   62   57

14   17   57    5

a的紅色對應於b的第1列,a的紅色第2行和橙色對應與b的第2列。根據a為3×3和子塊為2×2,最多可構成b的列數為((3-2)+1)×((3-2)+1)=4,列長(行數)為2×2=4。

注: 對於『sliding』型別,如果設a為mxn的,[p q]的block 塊,則最後矩陣的行(或列)的大小為:

(m-p+1) x (n-q+1)

應用例項——對矩陣進行m×n分塊,用子塊的和生成新矩陣。

b = im2col(a,[m n],'sliding');

c = reshape(sum(b),mm-m+1,nn-n+1);

Matlab函式學習(1)

1.find函式 語法 1 ind find x 找出矩陣x中的所有非零元素,並將這些元素的線性索引值 linear indices 按列 返回到向量ind中。如果x是乙個行向量,則ind是乙個行向量 否則,ind是乙個列向量。如果x不含非零元素或是乙個空矩陣,則ind是乙個空矩陣。2 ind fi...

Matlab常用函式,學習筆記

畫折線圖 m importdata 路徑 讀入矩陣 plot m 1 m 2 r 畫圖,m的第一列為 x軸,第2列為 y軸,紅色折線圖 a是乙個矩陣,矩陣的平方為 a 2,即矩陣乘以它本身。a中每個元素的平方 a.2 hy學長,畫 y列時的 m importdata c users visual d...

11月1日學習小結

1 單件模式 上面程式的缺點 就是在getinstance 函式用new產生的singleton物件在程式結束的時候,不會呼叫西溝函式,也就是說delete函式沒呼叫,這樣會產生記憶體洩漏。把上面的程式改為 這樣通過智慧型指標可以避免記憶體洩漏。另外的實現方法 網上其它的實現方法 2 false t...