1樓:網友
符在matlab中搏茄主要有兩種作用:
1、建立函式控制代碼(function handle constructor);
2、指定類目錄(class directory designator)。
其中,胡答用於建立函式控制代碼時,常見有兩種方式:
1、一般的函式控制代碼
就是你現在的這種情況,在函式名之前加乙個@符,即可得到該函式的控制代碼基做察,一般用於把函式(例如xtest)作為引數傳遞到另一函式(例如fsolve)的場合。函式控制代碼是matlab提供的一種標準資料型別。
如你上面所說,【把@去掉就會出錯】,這是因為,如果沒有@符,呼叫fsolve函式的時候,會把xtest視為乙個普通的引數,要得到這個引數的值,就需要執行「xtest」,也就是不帶引數地呼叫這個函式,當然會出錯。在有@符的情況下,@xtest是函式控制代碼,直接作為引數傳遞給fsolve。
2、匿名函式
這種方式相信你已經瞭解了,就不多說了。,其中有一節「at — 你可以找到更詳細的說明。
另外值得一提的是,@用於構造一般的函式的函式控制代碼最遲在就支援了(更早的我記不清了),而匿名函式的概念則是之後的事。
2樓:網友
因為函式呼叫其他函沒讓畝枯森數作為引數的時候,不是直接將函式傳遞的。
而是傳遞函式的控制代碼(相當於c語言的函式指標)xtest就是取得xtest 的控制代碼,然後作為引數傳遞給fslove定義匿名函式的時候,例如。
fun=@(x) x^2;
這時候其實fun就是乙個滑清函式的控制代碼,所以可以直接傳遞給其他函式。
之所以叫做匿名就是沒有名字,我們只有它的控制代碼。
而呼叫其他函式的時候,例如xtest,這是函式的名字,我們通過@xtest取得其控制代碼。
3樓:文件類共創空間
matlab內建函式很多,可很多時候不能滿足我們的實際需求。如:程式中需多次用到乙個複雜的運算,而禪搏這個運算不能用內建函式來實現,此時便可以定義匿名函式或餘派m函式。
匿名函式的優越性就是靈活、方便,可以自定義函式名和公式。但一般時候我們用m檔案來實現更復雜的功能模組(相當於子程賀毀祥序)。
matlab 匿名函式引數為匿名函式
4樓:網友
由於使用的匿名函式過多,造成自定義函式命名錯誤。所以自定義函式的匿名函式只能是乙個。根據要求,可以這樣來處理,分段賦值變數,組合變數匿名函式:
syms x
a=(1+x)/(x^2);
b=2*(1+x)/(1+2*x);
c=log(1+2*x)/x;
d=log(1+2*x)/(2*x);
e=(1+3*x)/(1+2*x)^2;
fun=@(x)2*pi*(
驗證:
當x=1時,y=fun(x)=
整體自定義函式的匿名函式:
f=@(x) 2*pi*(;
x=1;y=f(x)
y =結果是一樣的。
matlab是匿名函式嗎?
5樓:網友
f = x1,x2,x3) x1+x2+x3。
cf = func2str(f); for k = 1:3。
s = x' num2str(k)]。
ss = x(' num2str(k) '
cf = strrep(cf,s,ss)。
end ff = str2func(cf)。
匿名函式:匿名函式它是matlab中定義的一種函式形式,出現在matlab中,匿名函式不以檔案形式駐留在資料夾上;他的生成方式最簡捷,可在指令窗或任何函式體內通過指令直接生成。
6樓:網友
匿名函式 出現在 matlab 中。它是matlab中定義的一種函式形式。
函式簡介:匿名函式不以檔案形式駐留在資料夾上;他的生成方式最簡捷,可在指令窗或任何函式體內通過指令直接生成。
匿名函式的作用:主要實現自己定義matlab中的函式,從而擴大函式的使用功能。
和行內函數(inline)相比,匿名函式的優越性在於可以直接使用workspace中的變數,不必申明,非常適合嵌入到m檔案中。
例10-25 匿名函式舉例。
本例列舉3個匿名函式的例子,分別有0個、1個和兩個輸入引數。
首先介紹沒有輸入引數的匿名函式,只需用空格代替arglist即可。例如,編寫求解當前時間的匿名函式如下所示。
t = datestr(now);
t() 函式的呼叫。
ans =14-sep-2004 20:22:50
值得注意的是,呼叫該函式時,括號不能省略,否則, matlab 將對程式不予計算,如下所示。
tt =@()datestr(now)
再介紹有乙個輸入引數的匿名函式,該函式用於求所輸入引數的平方,編制並執行程式如下所示。
sqr = x) x.^2
sqr =@(x) x.^2
sqr(12)ans =
最後介紹有兩個輸入引數的匿名函式,使用者可以由此推導有多個引數的匿名函式,編制並執行程式如下所示。
sumaxby = x, y) (14*x + 41*y)
sumaxby =
x, y) (14*x + 41*y)
sumaxby(3,7)ans =
注意這些定義過程,其中@這個標誌符是很重要的。
matlab裡面缺少自帶函式怎麼辦
有可能是因為版本不一樣,或安裝的選件不一樣。比較好的方法是重灌,也可以缺哪個檔案,就複製那個檔案。檢視matlab函式源 的方法 1 在命令視窗中輸入 type 函式名 例如type rgb2gray等 就會在命令視窗出現該函式的相關說明及源 2 在命令視窗中輸入 open 函式名 例如open r...
扣扣裡面的匿名好友,給你發訊息說是喜歡你,,怎麼可以知道他是誰呢
我也想知道,怎麼可以知道她是誰 你嘗試看看他的空間,如果他空間沒有設定許可權的話,如果看不到,你就只能嘗試和他加為好友了,或者直接問唄,都想你表白了,總得知道人是誰吧 其實可以從說話的方式,語氣,口頭禪等方面猜猜,但大部分悄悄話都是說著玩的。我被耍不止一次了。悄悄話怎麼知道匿名好友是誰 你可以試試,...
matlab裡面簡單的程式顯示未定義函式或變數怎麼解決
1 首先需要知道matlab中檢視資料型別函式是class,可以先在命令列視窗中help class。2 在命令列視窗中輸入 a 123 class a 3 按回車鍵可以看到變數a的型別是double型別。4 輸入 b 1234 class b 5 按回車鍵之後,可以看到變數b的型別是字元型別,我們...