matlab中的常用函式(二)
整數型別資料的運算函式
一、bitshift 函式
bitshift函式實現資料位移操作。bitshift(A,B)函式第二個引數為正,則對A的二進位制數左移。第二個引數為負,則右移。bitshift(A,n,N),N表示移位後的資料最多隻有N為,若超過N位,多餘的位將被丟棄。例如bitshift(255,1),它的結果是510;bitshift(255,1,8)的結果是254。因為255轉化為二進位制數為11111111,向左移一位就為111111110,但是最多位數是8位,所以把最左邊那位丟棄,最後就是11111110,十進位制數就是254。
二、bitset函式
bitset函式將指定的資料位設定為1。bitset(A,n,i)將指定的第n資料位的值設定為i。第幾位是從右到左的數。若沒有i,則將相應的資料位設定為1。
三、bitget函式
bitget函式獲取指定資料位的數值。bitget(A,n)函式根據輸入的第二個引數n獲取指定的第n位的數值。第幾位是從右到左的數。
四、bitxor函式
bitxor函式實現資料位異或運算。
其他的函式
error(nargchk(1,5,nargin))這個語句中,存在著三個函式,首先介紹nargin函式。
在matlab中定義一個函式時, 在函式體內部, nargin是用來判斷輸入變數個數的函式。nargchk(1,5,nargin),當nargin的值大於5,nargchk返回字串Too many input arguments. '當nargin的值小於1,nargchk返回字串not enough input arguments.當nargin的值在1到5之間,nargchk返回空字串。error以錯誤的方式,就是以紅色的字型顯示警告字串。
matlab中的近似函式
ceil函式是向上取整,也就是取不小於它的最小整數,floor是向下取整,也就是取不大於它的最大整數。round就是四捨五入。
setfield函式
設定結構陣列中指定的欄位的值。例如feature_idx = setfield(feature_idx,lbpname,[(ix_st+1):ix_end]'),指的是設定結構陣列中lbpname欄位的值為第三個引數代表的值,lbpname是字串。
std函式
std(x)求x的標準差。當x是一個向量的時候,就是求這個向量的標準差,利用公式
若x為一個矩陣,std(x)返回的是行向量,計算的是每列元素中的標準差。std(x,flag)當flag = 0的時候,與std(x)一樣,當flag=1的時候利用下面的式子計算標準差。
s = std(X,flag,dim),flag的功能同上,dim指定相應的維數,若X為二維矩陣,dim = 1指定計算每列元素的標準差,返回值是行向量。若dim = 2指定計算每行元素的標準差,返回值是列向量。
getfield函式
getfield函式是讀取結構體陣列中相應欄位的值。value = getfield(struct, 'field'),就是讀取結構體struct中欄位field的值。