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中如何提取裡面的資料
matlab提供了notebook,使使用者可以在word環境中呼叫matlab的強大功能。notebook製作的m book文件不僅擁有word的全部文書處理功能,而且具備matlab無與倫比的數學解算能力和計算結果視覺化能力。1.notebook的安裝 在matlab命令列下,輸入noteboo...
MATLAB裡面strcmp和strncmp的作用
文件類共創空間 strcmp s1,s2 尋找s1和s2是否完全匹配,s1和s2沒有順序的區分。例 s wooden strcmp s,wood returns 0strcmp s,wooden returns 1strcmp wooden s returns 1strcnmp s1,s2,n 尋找...
matlab 裡面資料擬合工具箱使用
立志要當工程師 不是matlab安裝的問題,這個問題我也遇到過,遍求解答無果之後,終於自己摸索出來了。是這樣的,不要用gui中的data按鈕來新建資料集,而要在matlab命令視窗中,輸入命令 cftool a,b 其中a,b就是你要設定的x y座標的向量。這樣出來散點圖,之後再在cftool工具箱...