控制代碼
圖形控制代碼和圖形之間是一種一一對應關係,簡單的說圖形控制代碼就是指向了這個圖形的乙個變數,通過它可以設定該圖形的各種屬性。
控制代碼是matlab語言獨有的引數,相當於c語言的指標。控制代碼分為多種,如函式柄,物件柄,圖形柄等。圖形控制代碼就指乙個圖形,在生成圖形時同時得到一代號,如語句 h=plot(x,y),h 就是乙個圖形控制代碼,在後來的某乙個地方就可用h代表這個圖,如 set(h,....),對這個圖形進行再設定。
函式控制代碼是matlab資料型別,包含用於引用函式資訊;優點:簡化函式實現,提高重複效能;用@來建立函式控制代碼;
比如定義f(x)=x^2,可以寫為:f=@(x)(x.^2)
其中@(x)(x.^2)就是匿名函式,第乙個括號裡面是自變數,第二個括號裡面是表示式,@是函式指標
f=@(x)(x.^2)表示將匿名函式@(x)(x.^2)賦值給f,於是f就表示該函式。
於是f(2)=2.^2=4;f(1:3)=[1:3].^2=[1 4 9]等等
定義匿名函式時也可以呼叫別的匿名函式,比如
f1=@(x,y)(x.^2+y.^2) 定義了函式x^2+y^2
f2=@(t)(f1(t,2)) 定義了函式t^2+4
f3=@(x)(f1(x(1),x(2))) 定義了函式x(1)^2+x(2)^2
使用匿名函式時一定要注意函式本身的引數形式,如:
f1(2,3):表示2^2+3^2
f2(3)=3:表示3^2+4
f3([1,2]):表示1^2+2^2
說白了就是函式指標
例子:求方程:x^3+x^2-1=0在區間[0 1]的根?
主函式:
h=@(x) x^3+x^2-1;
x=erfen(h,[0 1])
h(x)
子函式(erfen.m):
function
x=erfen(h,x)
a=x(1);
b=x(2);
fa=h(a);
fb=h(b);
while
1 %一直迴圈
fc=h(a/2+b/2);
ifabs(fc)<1e-5
x=(a/2+b/2);
return
;else
iffa*fc<0
b= a/2+b/2;
else
a= a/2+b/2;
endend
end注意:
matlab中return;break;contiue;keyboad的使用規則是:
break就是直接跳出該層迴圈;continue就是直接進入該層迴圈的下一次迭代;return就是直接退出程式或函式返回了;return>break>continue;
MATLAB 求解方程(組)
eg.解方程x 2 x 2 0 1.roots p 函式 此 matlab 函式 以列向量的形式返回 p 表示的多項式的根。輸入 p 是乙個包含 n 1 多項式係數的向量,以 xn 係數開頭。0係數表示方程中不存在的中間冪。p 1 1,2 x roots p 2.solve函式 利用solve函式求...
matlab 求解非線性方程 方程組
使用matlab求解非線性規劃 目標函式們 0 create by zhiyang dou 2019 4 10 contact sdudzy 163.com function f target d,r,j,b,sigma j f 1 j j d 1 normcdf log j d 1 b r 0.5...
MATLAB求解方程和多元方程組
前面有兩篇博文分別介紹了 matlab求常微分方程的解析解 matlab求常微分方程的數值解 為了形成乙個體系,我決定把普通方程組的求解也介紹一下。本博文也是按照matlab的官方文件展開的 推薦大家多看官方文件 一般形式s solve eqns,vars,name,value 其中 eqns是需要...