matlab裡面的function的輸入引數有函式怎麼呼叫

2021-07-01 01:45:17 字數 5047 閱讀 9365

1樓:雙槍老椰子

function用來定義函式,一般一個函式放在一個.m檔案裡。舉個簡單的例子建立一個myfunction.m,然後在檔案中寫。

function y=myfunction(a,b)其中a,b是輸入函式的引數,y是函式返回的值。當需要返回多個值時,可以將y看作一個陣列,或者直接將函式的開頭寫成如function [x,y]=myfunction(x,y)的形式。

然後就是定義函式的內容,通俗的說就是怎樣由輸入引數a,b得到返回值y。比如最簡單的y=a+b。

總結一下,將下面的**

function y=myfunction(a,b)y=a+b;

儲存為一個m檔案myfunction.m,呼叫方式如下。

num=myfunction(3,4);

這樣就可以由函式中的y=a+b得到num的值是3+4=7。

2樓:劉賀

個人感覺:如果要求一個函式在區間[a,b]上的積分,不應該這樣定義函式

你是有什麼特殊要求?

應該是在函式體裡定義函式,然後在主程式裡呼叫函式例如:函式:

function y=fun(x)

y=2.^x;

儲存後在主程式裡呼叫:

aa=quadl('fun',a,b);才對呀。

怎麼感覺怪怪的,可能程式設計思想不一樣。

matlab自定義函式function中輸入引數中有函式怎麼辦?

3樓:天蠍神經俠侶

matlab自定義函式的六種方法

n1、函式檔案+呼叫函式(命令)檔案:需單獨定義一個自定義函式的m檔案;

n2、函式檔案+子函式:定義一個具有多個自定義函式的m檔案;

n3、inline:無需m檔案,直接定義;

n4、匿名函式;

n5、syms+subs:無需m檔案,直接定義;

n6、字串+subs:無需m檔案,直接定義。

------------

1、函式檔案+呼叫函式檔案:定義多個m檔案

% 呼叫函式檔案:myfile.m

clear

clcfor t=1:10

y=mylfg(t);

end%自定義函式檔案: mylfg.m

function y=mylfg(x) %注意:函式名(mylfg)必須與檔名(mylfg.m)一致

y=x^(1/3);

注:這種方法要求自定義函式必須單獨寫一個m檔案,不能與呼叫的命令檔案寫在同一個m檔案中。

2、函式檔案+子函式:定義一個具有多個子函式的m檔案

%命令檔案:funtry2.m

function =funtry2()

for t=1:10

y=lfg2(t)

fprintf(『m^(1/3)=%6.4f\n』);

endfunction y=lfg2(x)

y= x^(1/3);

%注:自定義函式檔案funtry2.m中可以定義多個子函式function。子函式lfg2只能被主函式和主函式中的其他子函式呼叫。

注意:函式定義格式

在matlab中應該做成m檔案,檔名要和你檔案裡的function後面的函式名一致,在file新建一個m-file 在m-file裡編輯函式,其格式為:

function [輸出實參表]=函式名(輸入實引數)

註釋部分

函式體語句

return語句(可以有可以沒有)

如果是檔案中的子函式,則可以任意取名,也可以在同一個檔案中定義多個子函式:

4樓:匿名使用者

syms x

y=@(x) 2^x

這樣寫試試。

使用matlab編寫一個函式,如何在函式執行時,提示使用者輸入一些計算基本引數呢?

5樓:匿名使用者

%提醒使用者輸入數值

a=input('enter the a:');

b=input('enter the b:');

把這個放m檔案開始的地方,呼叫的時候它就會提醒輸入a和b的值

matlab中m函式檔案輸入引數問題

6樓:我行我素

這個問題包括幾個方面:

1、m函式輸入引數是程式必須的,設定、選用須充分考慮程式需要,儘量以最少的輸入引數,解決問題。

2、對已寫好的m檔案,不改程式的話,輸入引數必須與檔案要求相符,變數型別一致。

3、輸入方式有幾種:

a先定義輸入引數,再呼叫函式,如 x=5;b=magic(x);

b直接在呼叫函式語句中定義,如 b=magic(5);

7樓:匿名使用者

對啊 ,你前面給一個長度為5的輸入引數,

後面分別t(1),t(2)就可以單獨引用裡面的每一個元素嘛。

是這個意思吧?

8樓:

沒看懂你的問題,你想怎麼用??

方程的問題??

matlab函式dsolve的輸入引數裡的name和value的意義和用法是什麼呢?

9樓:匿名使用者

是額外設定選bai項,有兩du個,一個是zhi'ignoreanalyticconstraints';另一個是'maxdegree'。

以下分別介紹兩dao個name的含義內。

'ignoreanalyticconstraints',表示是否忽略容解析解約束(用初等函式表示的形式),如果對應的value是true(預設),那麼計算微分方程的數值解。如果對應的value是false,一旦微分方程沒有解析解,就不再計算,直接返回無解。

'maxdegree'表示解多項式方程,數值解的精度,value是對應的取值,預設是2。但這個值設定不能超過5,否則報錯。

呼叫舉例:

syms y(t)

dsolve(sqrt(diff(y)) == sqrt(y) + log(y))

dsolve(sqrt(diff(y)) == sqrt(y) + log(y), 'ignoreanalyticconstraints', false)

syms a y(x)

s = dsolve(diff(y) == a/(y^2 + 1), 'maxdegree', 4);

pretty(s)

10樓:匿名使用者

用來做一些選項設定, 如 'ignoreanalyticconstraints' 'maxdegree'

具體 doc dsolve 檢視

matlab中如何呼叫自己編寫的函式??

11樓:匿名使用者

根據我的經驗

如果你的程式放在當前資料夾下面(指令碼檔案和自編函式在同一資料夾下),或者是matlab的預設搜尋路徑下,是可以直接被呼叫的。除此之外的函式呼叫就要用到一個命令:增加matlab的函式庫搜尋命令,這樣的話,matlab在預設路徑搜尋完之後,就會去訪問使用者自定義的路徑。

%假設你的主程式.m(或者是指令碼)在資料夾「我的實驗」下,其他要呼叫的程式在「我的實驗\呼叫函式」下,

%可以採用如下方法增加呼叫函式檔案搜尋路徑new=cd; %cd是獲得當前路徑的命令new=[new '\呼叫函式'];

path(path,new);%增加搜尋路徑這時候,該資料夾下面的任何函式都可以被呼叫了。

當然你也可以用

path(path,newpath);%newpath是你要呼叫的資料夾名字

增加任何路徑,比如桌面。

12樓:樂素琴召珍

舉個例子,希望有所幫助:

function

main()

%牛頓插值

clear

all;

close

all;

clc;

x=[0.5,0.6,0.4];

y=[-0.6931,-0.5108,-0.9163];

[p,q]=ex23(x,y);

x=0.54;

%線性插值:取插值節點

0.5,0.6

y1=q(1)+q(2)*(x-0.5);

fprintf('線性插值的結果:%.4f\n',y1);

%二次插值:取插值節點

0.5,0.6

y2=y1+q(3)*(x-0.5)*(x-0.5);

fprintf('二次線性插值的結果:%.10f\n',y2);

%中,對於[p,q]=ex23(x,y)在哪定義?

function

[p,q]=ex23(x,y)p=

x.*y;q=

x+y;

結果:線性插值的結果:-0.1895

二次線性插值的結果:-0.1903580800>>

13樓:圖書校對找茬

首先,開啟matlab軟體;

然後,開啟寫好的函式,複製function後的函式名及引數;

第三,在命令視窗黏貼,將引數替換成需要運算的物件,回車;

最後就會呈現出計算結果。

14樓:月月

%我舉個例子,以下是一個求和的函式

function [result]=my_sum(a,b)result=a+b;

%以上是我的函式,呼叫過程

a=3;

b=4;

[result]=my_sum(a,b)

%這樣就可以了,注意你呼叫的函式要存在當前的路徑中。否則會說找不到函式。

15樓:

跟呼叫系統提供的函式一樣。

要注意函式的入口引數的個數,型別,位置。

還要注意返回值的型別。用適當的變數來接受返回值。

16樓:

直接寫函式名,並加上引數。

17樓:丟掉的罐頭

你這個怎麼執行不過去啊。。。

在matlab裡面的yzsappr是什麼意思

x,y fminbnd x exp x.3 2 x 5 0,5 x,y即為最小值時對應的點。matlab中 r 是什麼意思?r 是plot畫紅色直線的意思。主要分兩部分,線形和顏色。線形 就是點劃線,是虛線 關於顏色 紅色就是r,綠色是g,藍色是b。舉例 figure,plot 1 0.01 4,s...

如何利用matlab求矩陣裡面的最大值,及位置呢?矩陣中

找最大元素就是max max a 注意二維矩陣要寫兩個max 找對應位置用find函式 例如 a 5 6 8 7 5 1 3 4 9 8 5 7 9 1.2 8.8 9.8 9.4 8.5 1.3 5.4 a max max a x,y find a a 執行結果 a 5.0000 6.0000 8...

matlab裡面的讓建立數學模型的題是讓你寫程式還是咋的

本來就是個程式語言,當然是要寫程式的啊 每太看懂你的問題,matlab是數學建模中最常用的軟體,每一個建模人必備的,他是在內c的基礎上的程式設計軟容件,基於矩陣運算,數值計算和作圖上很強大。而且,現在幾乎用於所有的工程領域,使用範圍很廣,很好的計算軟體。這個軟體我我接觸過,是要編寫成程式的 我的理解...