Matlab腳本和函數


腳本和函數

腳本:

特點:按照文件中所輸入的指令執行,一段matlab指令集合。運行后,運算過程產生的所有變量保存在基本工作區。可以進行圖形輸出,如plot()函數。

舉例:

腳本文件ex4_15.m:

array=zeros(1,32);

for n=3:32                      %3-32遞增的循環

    array(n)=rank(magic(n));

end

array;

bar(array)

 

 

相關函數(超鏈接顯示詳細內容):

零矩陣X = zeros(n) 返回一個 n×n 的全零矩陣。

 

幻方矩陣M = magic(n) 返回由 1 到 n2 的整數構成並且總行數和總列數相等的 n×n 矩陣。階次 n 必須為大於或等於 3 的標量。


求矩陣的秩k = rank(A) 返回矩陣 A 的秩。

條形圖:bar(y) 創建一個條形圖,y 中的每個元素對應一個條形。如果 y 是矩陣,則 bar 根據 y 中的行對條形分組。

 

 

 

 

函數:

  特點:以function開始的m文件。函數文件定義的變量為局部變量,函數執行完后清除。函數是一個“黑箱”,把數據輸入進行加工處理再輸出。

function [y1,...,yN] = myfun(x1,...,xM)

 

  實例:

  函數文件average.m

function y=average(x)

[a,b]=size(x);

if~((a==1)|(b==1)|((a==1)&(b==1)))     

%判斷是否為向量 a,b至少有一個為1

    error('必須輸入向量')

end

y=sum(x)/length(x);

 

 

function:函數聲明

y:輸出參數(可以為多或者無)

x:輸入參數(可以為多或者無)

 

相關函數(超鏈接顯示詳細內容):

  數組大小sz = size(A) 返回一個行向量,其元素包含 A 的相應維度的長度。例如,如果 A 是一個 3×4 矩陣,則 size(A) 返回向量 [3 4]sz 的長度為數組的維度。如果 A 是表或時間表,則 size(A) 返回由表中的行數和變量數組成的二元素行向量。

  引發錯誤並顯示消息:error(‘XXX’)

 

典型規范的M函數文件總結:

  1. 函數定義行:function引導,函數名與文件名相同,定義輸入輸出參數。
  2. H1行:緊隨函數聲明的第一個注釋行,供lookfor查詢使用。(包括大寫的函數文件名和運用關鍵詞簡要描述的函數功能)
  3. 幫助文本:%開頭的注釋,通常包括輸入輸出的變量含義及調用說明
  4. 函數體:實現功能的matlab命令

 

規范文件[庄1] (spirallength.m)實例:

function spir_len = spirallength(d,n,lcolor) 
% circle plot a circle of radius as r in the provided color and calculate
% its area 用提供的顏色繪制一個半徑為r的圓,並計算其面積
% d:螺旋的旋距
% n:螺旋的圈數
% lcolor:畫圖線的顏色
% spir_len:螺旋的周長
% spirallength(d,n):藍色為預設參數的螺旋線
% spirallength(d,n,lcolor):利用lcolor顏色為參數的螺旋線
% spir_len = spirallength(d,n):計算並返回螺旋線周長,利用藍色為參數的螺旋線
% spir_len = spirallength(d,n,lcolor):計算並返回周長,利用lcolor顏色為參數的螺旋線
%編寫於2019.6.4 庄林武

if nargin>3               %nargin為調用參數個數
    error('輸入參數過多!');
elseif nargin == 2
        lcolor= 'b';      %輸入參數只有兩個,不包括顏色信息,設置顏色為藍色
end
j=sqrt(-1);
phi = 0:pi/1000:n*2*pi;
amp = 0:d/2000:n*d;
spir = amp .*exp(j*phi);
if nargout == 1           %nargout為調用函數返回的參數個數
    spir_len =sum(abs(diff(spir)));
    fill(real(spir),imag(spir),lcolor)    %real(x)復數x的實部 imag(x)復數x的虛部
elseif nargout == 0
     plot(spir,lcolor)
else
    error('輸入變量過多');
end
axis('square')
        

 

相關函數(超鏈接顯示詳細內容):

平方根B = sqrt(X) 返回數組 X 的每個元素的平方根。對於 X 的負元素或復數元素,sqrt(X) 生成復數結果。

 

指數Y = exp(X) 為數組 X 中的每個元素返回指數 ex。對於復數元素 z = x + iy,它返回以下復指數ez=ex(cosy+isiny) .

 

   差分和近似導數Y = diff(X) 計算沿大小不等於 1 的第一個數組維度的 X 相鄰元素之間的差分:

  數組元素總和:S = sum(A) 返回 A 沿大小不等於 1 的第一個數組維度的元素之和。

 

  填充的二維多邊形:fill(X,Y,C) 根據 X 和 Y 中的數據創建填充的多邊形(頂點顏色由 C 指定)。C 是一個用作顏色圖索引的向量或矩陣。

 

  二維線圖:plot(Y,LineSpec) 設置線型、標記符號和顏色。

 

  設置坐標軸范圍和縱橫比:axis(limits) 指定當前坐標區的范圍。以包含 4 個、6 個或 8 個元素的向量形式指定范圍。


 [庄1]理解實例需要了解螺旋圖數學原理的畫法(待解決)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM