Matlab相關函式

2021-10-03 07:23:18 字數 2248 閱讀 9113

img=imread('su.bmp')
matlab讀入影象的資料是uint8,而matlab中數值一般採用double型(64位)儲存和運算。所以要先將影象轉為double格式的才能運算

img=double(img)
%將乙個 50×50 的灰度值陣列寫入mygray.png。 

a = rand(50);

imwrite(a,'mygray.png')

灰度直方圖反映了灰度影象中不同灰度級出現的統計情況

mod(a,b)  求 a%b
rem()也是取模運算,mod()和rem()的區別在於當a和b有負數的時候

返回兩個數值型數值在按位進行   and   運算後的結果

%求a&b

x = bitand(a,b)

f_id = fopen("a.txt",'r')   %開啟要讀取的檔案

f_id = fopen("a.txt",'w+') %開啟或建立要讀寫的新檔案。如果原來有內容會擦掉重新寫

r : 只能讀, 必須存在, 可在任意位置讀取

w : 只能寫, 可以不存在, 必會擦掉原有內容從頭寫

r+ : 可讀可寫, 必須存在, 可在任意位置讀寫, 讀與寫共用同乙個指標

w+ : 可讀可寫, 可以不存在, 必會擦掉原有內容從頭寫

fread函式主要用法是從檔案中讀取二進位制資料

[ msg, len_total] = fread( f_id, 'ubit1')

%'ubit1'是一次讀取乙個二進位制位,就是一次讀取乙個位元

%'ubit8'是一次讀取8個二進位制位,就是一次讀取乙個位元組

%'ubit4'是一次讀取4個二進位制位

fwrite( frr, 1, 'ubit1')

%'ubit1'是一次寫入乙個二進位制位

% 這句話的意思是將1寫進去

a = bitshift(a,k)

%將a向左偏移k位,這等效於乘以2的k次方

rand(a,b)   

%生成a行b列的隨機數,大小為(0,1)的double

% a和b是行數列數,生成隨機數的大小一直是(0,1)

rand(n)

%生成n行n列的隨機數,大小為(0,1)的double

i = rand(n)

d = dct2(i)

%對i進行dct變換

%i是n*n的矩陣

%如果矩陣i是n×n方陣,則i的dct變換可用t×i×t'來計算,注意其中的n是維數,不是矩陣

t = dctmtx(n)

d = t * i * t'

即 dct2(i)= t*i*t'即block processing的意思

函式呼叫形式:b = blkproc(a,[m n],fun, parameter1, parameter2, ...)

[m n] :影象以m*n為分塊單位,對影象進行處理(如8畫素*8畫素)

fun:   應用此函式對分別對每個m*n分塊的畫素進行處理

parameter1, parameter2: 要傳給fun函式的引數 

例:pic=imread('lena.bmp');

img=blkproc(pic,[8,8],'dct2');

該例中把lena.bmp分成8*8畫素塊進行dct2變換。

b=blkproc(i,[8,8],'p1*x*p2',t,t');

%x就是每乙個分成的8*8大小的塊,p1*x*p2相當於畫素塊的處理函式,p1=t p2=t』,也就是fun=p1*x*p2'=t*x*t'的功能是進行離散余弦變換

matlab矩陣運算相關函式

1.matlab提供函式det 求方陣行列式的值 a 1 3 4 5 6 7 1 0 1 a 1 3 4 5 6 7 1 0 1 a det a a 12 2.matlab提供函式transpose 求矩陣的轉置矩陣,也可以使用算術運算子 求矩陣的轉置運算 b1 transpose a b1 1 5...

MATLAB函式的相關使用

function 輸出引數 函式名 輸入引數 函式體end 注意事項 m檔案中乙個函式為主函式,其餘函式皆為子函式,呼叫該檔案函式時,率先呼叫主函式 在乙個m檔案種,除主函式外的所有函式皆為子函式,子函式不能與主函式重名 函式體內定義其他函式,所有函式必須以end結尾 通過不同輸入輸出引數重寫函式,...

matlab實現RBF的相關函式

摘自 matlab神經網路43個案例分析 1 newrb net,tr newrb p,t,goal,spread,mn,df 其中p為q組輸入向量組成的r q位矩陣,t為q組目標分類向量組成的s q維矩陣。goal為均方誤差目標 mean squard error goal 預設為0.0 spre...