matlab可以通過function去定義一些功能函式,這使得**變得簡潔和高效。但是如果遇到的是一些簡單的數學公式組成的函式表示式,繼續用function去定義函式,似乎顯得有些冗雜和多餘。這時候,就可以嘗試運用匿名函式了。
handle = @(arglist)anonymous_function
其中handle為呼叫匿名函式時使用的名字。arglist為匿名函式的輸入引數,可以是乙個,也可以是多個,用逗號分隔。anonymous_function為匿名函式的表示式。
按照基本格式,我們做乙個小案例來測試。
這裡測試的是 rbf徑向基函式,他的表示式是是這樣的:
\[k_\left(\mathbf, \mathbf_\right)=\exp \left(-\frac-\mathbf_\right\|^}}\right)
\]其中$ \mathbf$ 是樣本點,\(\mathbf_\) 是測試點,\(r\) 是核引數。
設樣本點為0,測試點為-5到5,核引數分別取0.2、0.5、1.0、2.0。對比四種情況下的曲線變化規律。
clc,clear,close all;
% 定義匿名函式
k_rbf = @(x,xi,r) exp(-(x-xi).^2./(r.^2));
% 設定變數取值範圍
xi = -5:0.01:5;
x = zeros(size(xi));
r = [0.2;0.5;1.0;2.0]*ones(size(xi));
% 畫圖基礎設定
curvetype = ;
r_legend = ;
% 畫取不同的 r 值下的函式
for i = 1:length(curvetype)
plot(xi,k_rbf(xi,x,r(i,:)),curvetype,'linewidth',2);
hold on
end% 設定影象引數
set(gca,'fontsize',24),set(gcf,'outerposition',get(0,'screensize'));
legend(r_legend),xlabel('x_i'),ylabel('核函式值k(x,x_i)');
title('rbf核函式在測試點 x=0 處的對映關係');
% 儲存影象
print(gcf,'-djpeg','-r300','rbf核函式在測試點 x=0 處的對映關係');
MATLAB匿名函式
fhandle arglist expr其中,expr是具體的函式表示式,arglist是指定的函式自變數。具體請見下面示例 f x x.2 fx f 1 10 fx 1 4 9 16 25 36 49 64 81 100 g x,y x.2 y.2 gxy g 1 10,2 11 gxy 5 13...
matlab匿名函式
匿名函式 匿名函式 什麼是匿名函式?匿名函式是不儲存在程式檔案中 但與資料型別是 function handle 的變數相關的函式。匿名函式可以接受輸入並返回輸出,就像標準函式一樣。但是,它們可能只包含乙個可執行語句。例如,建立用於計算平方數的匿名函式的控制代碼 sqr x x.2 變數 sqr 是...
x 構造匿名函式 MATLAB函式
是用於定義函式控制代碼的操作符。函式控制代碼既是一種變數,可以用於傳參和賦值 也是可以當做函式名一樣使用。舉例 sin是matlab中的乙個函式,但sin只是函式名,還不是函式控制代碼,不可以用於傳參。f sin 這行 定義了乙個函式控制代碼,變數名是f。這樣就可以當做引數傳遞了 這就是上面 中的意...