1. 程式人生 > >matlab基本知識(入門)

matlab基本知識(入門)

matlab是一項很重要的工具,在影象處理的領域,可以快速實現演算法的可行性。所以本人最近學了下matlab,這裡介紹下matlab的一些基本知識,後面再寫個matlab中陣列,向量,和矩陣的相操作。然後是小波變換,影象處理工具箱。

  1. matlab中一些常用資料型別
    uint8(int8) 佔1Byte(一個位元組)
    uint16(int16) 佔2Byte(一個位元組)
    uint32(int32) 佔4Byte(一個位元組)
    single 佔4Byte
    double 佔8Byte
    logical(false和true)佔1Byte
    cell(單元陣列)佔68Byte
    char 佔10Byte
    struct(結構體)佔134Byte
    funtion_handle(控制代碼)佔16Byte
    下面分享一個可以檢視single和double範圍的函式
c='hello'
int8(c)

可以試試上面兩行程式碼輸出什麼(輸出的是h e l l o的ASCII碼)

 >>d1=[realmin('single'),realmax('single')]
 >> d1=[realmin('double'),realmax('double')]

命令列輸入就可以輸出結果

  1. matlab資料處理方式
    要注意,在matlab中,所有的資料都預設為double型資料處理,若想輸出整型數,都要在輸出前加型別轉換。

3.matlab中的一些常用取整函式的總結

round(a)-對a進行四捨五入
fix(a)-對a向0 的方向取整
floor(a)-對a向左取整
ceil(a)-對a向右取整

  • . matlab中對複數的處理函式
    z=complex(a,b)-產生一個複數為z=a+bj;
    real(z)-得到z的實部
    imag(z)-得到z的虛部
    abs(z)-對複數z取模
    angle(z)-得到相角
    conj(z)-得到z的共軛複數
  • format的應用
    在matlab中默然顯示格式是採用format short格式,也就是顯示小數保留小數點後4位,若要用其他方式顯示,可在最後加上format long(15位小數位))、format long e(採用科學計數法)或者是format short e
    可以嘗試下在matlab命令列輸入下面語句
>>a
=34.9; >>format long >>a >>format short >>a
  • matlab中logical型變數
    對於邏輯變數,只有false和true兩種選項。對應的數字就是0和1;
    執行下面程式碼
>>a=true(3,4)%產生一個3*4的邏輯真的全1矩陣
>>b=false(3,3)%產生一個3*3的邏輯真的全0矩陣
>>c=[1 2;3 0;-6 4]
>>c=logical(c)%這裡將c轉換為邏輯型陣列,陣列中非0全變為10就是0
  • matlab中還有一種變數,叫控制代碼(function_handle)
    控制代碼使用格式:fhandle(控制代碼變數名)[email protected](必須有)cos(函式名稱)
    下面舉例說明
f1=@complex%這是一個產生複數的函式,後面f1就可以代替這個函式產生複數;
f1(2,3)%這裡就是呼叫

控制代碼相關函式
func2str(fhandle)%控制代碼轉換為字串
str2func(str)%字串變數轉變為控制代碼變數
isa(a,’function_handle’)%判斷a是否為控制代碼變數
functions()%該函式返回包含函式資訊的結構體變數
isequal(fhandle1,fhandle2)%判斷兩個控制代碼是否相等
下面是程式碼應用

s='sin';
f1=str2func(s)%這行程式碼和f1=@sin效果一樣
functions(f1)%顯示控制代碼f1相關資訊
func2str(f1)%顯示字串
isa(f1,'functon_handle')
  • cell()-matlab中的單元陣列型別(不同於普通陣列)介紹
    建立單元陣列的兩種方式
    1.採用{ }形式;
    2.採用cell()方式
    單元數組裡面的每一個元素可以裝很多東西,可以是字串,可以是矩陣,可以是空。空的話顯示[]
c={'中國','China',[1 2 2;1 2 3]};
cell(3,4)%函式建立單元陣列3*4形式
c{1,1}=[1:3;3:5];%1行1列
c{2,2}='China'%2行2列

單元陣列操作相關函式:
1.celldisp(c)-顯示c的每個元素的具體內容,比如比如c{2,2}的單元陣列,會以c{1,1}=,c{2,1}=,c{1,2}=,c{2,2}=,形式給出。
2.cellplot()-這個函式回憶彩色影象方式給出單元陣列的儲存內容
例:
c={‘中國’,’China’,[1 2 2;1 2 3]};
cellplot(c,‘legend’)
這裡寫圖片描述

這就是顯示結果。最後一個顏色條說明是加了‘legend’結果。
3.num2cell()-將普通矩陣轉換為單元陣列。

4.iscell(a)-判斷傳入引數a是否為單元陣列。

5.這裡介紹怎麼刪除單元數組裡的相關元素
刪除元素就把相應行或者列的元素置為[]就行。

 c={'中國';'China';[1:4;2:5]};%1行3列
 d=['北京','beijing',[1,3]]%1行3列
 e=[c,d] %合併c和d,e為2行3列
 e(1,:)=[];%刪除了第一行。
 e(:,3)=[];%刪除了第3列。
 e(:,2:end);%刪除的第2列到最後一列
 e(1:end,:);%刪除的第1行到最後一行

6.介紹單元陣列怎麼增加元素
具體見下列截圖:
這裡寫圖片描述
增加了最後一列。

7.cell2struct()-將單元陣列轉換為結構體型別
函式呼叫標準格式為structArray = cell2struct(cellArray, fields, dim)
dim為維度
有如下程式碼
這裡寫圖片描述
這些就是一些matlab基本知識,後面一些文章還會補充一些知識點。