MATLAB函式控制代碼的小總結

2021-10-07 21:00:59 字數 1268 閱讀 7220

函式控制代碼在matlab使用過程中經常涉及到, 個人小小的彙總一下,有不足和錯誤之處還望大家多多包涵和指點補充

函式控制代碼的定義具體參見官方文件這裡就不多加敘述了

很多matlab內建函式使用時都需要涉及到函式控制代碼,像integral,fzero,fsolve等函式,這裡以integral為例

個人目前掌握的建立主要三種方式

一、使用function函式建立自定義函式,在指令碼檔案使用@呼叫

例:

s=integral(@(x)fun(x),0,2)

function y=fun(x)

y=x.^2;

end

可得

s =2.6667

二、使用@匿名函式

fun=@(x) x.^2;

s=integral(fun,0,2)

可得

s =2.6667

三、使用syms(定義變數)和matlabfunction()將syms變數轉換為函式控制代碼)兩個函式結合使用

syms x

y=x^2;

fun=matlabfunction(y);

s=integral(fun,0,2)

可得

s =2.6667

以上三種方法在求解的函式相對簡單時可以互換,即如以上三個例子均是求x平方在0到2上的積分,但有時最好採用其中一種方法

一、當有其他引數需要輸入時,最好使用第一種方法

i=1;

s=zeros(1,4);

for a=1:2:7

s(i)=integral(@(x)fun(x,a),0,2);

i=i+1;

endfunction y=fun(x,a)

y=x.^2+a;

end

即可求得一組積分結果

s =4.6667 8.6667 12.6667 16.6667

二、當需要函式內部需要先運算時,

例,需要先運算向量a與其轉置相乘

syms x

a=[1,x,x^2];

y=a*a';

fun=matlabfunction(y);

s=integral(fun,0,2)

可得

s =11.0667

此時若使用前兩種方法,則因integral的求解方法先給x賦值,再運算,可能出現未定義與函式控制代碼型別相對應的運算』運算維度不符等問題

Matlab中的函式控制代碼

本系列文章由 yhl leo 是matlab中的控制代碼函式的標誌符,即間接的函式呼叫方法。主要有兩種語法 handle functionname 返回乙個特別的matlab函式控制代碼,它提供了一種間接訪問函式的方式,也被成為函式的函式 function functions 是一種標準的matla...

MATLAB函式控制代碼 單元陣列和結構

函式控制代碼 單元陣列和結構 函式控制代碼 包含有引用函式時所有的資訊,優點 將函式控制代碼作為呼叫中的參量傳遞到另乙個函式 可以儲存到資料結構或檔案中 函式控制代碼運算子 有兩種函式控制代碼 1 命名函式控制代碼 建立例如 f sin 呼叫例如 f pi 4 或者 sin pi 4 2 匿名函式控...

matlab學習筆記13 3建立函式控制代碼

參考文獻 可以為已命名函式和匿名函式建立函式控制代碼。可以將多個函式控制代碼儲存在陣列中,儲存並載入它們,方法與對任何其他變數一樣。函式控制代碼是一種儲存指向函式的關聯關係的 matlab 資料型別。間接呼叫函式使在呼叫該函式時無需考慮呼叫位置。函式控制代碼的典型用法包括 將乙個函式傳遞到另乙個函式...