在1個(gè)Matlab m文件中定義多個(gè)函數(shù)直接運(yùn)行的操作方法
如何在1個(gè)Matlab m文件中定義多個(gè)函數(shù)直接運(yùn)行
簡(jiǎn)介
編寫運(yùn)行程序會(huì)遇到“此上下文中不允許函數(shù)定義”錯(cuò)誤。如果仍希望將全部程序放入一個(gè)m文件中,并可以直接運(yùn)行出結(jié)果,該程序包括主程序及主程序中使用的函數(shù),這些函數(shù)內(nèi)容也會(huì)寫在同一m文件中,則需要用“function main”聲明主函數(shù),即主程序,同時(shí)也要合理使用全局變量,向多個(gè)函數(shù)傳遞中間參數(shù)值。接下來將用實(shí)例介紹,如何定義全局變量,如何編寫出可執(zhí)行的,包含多個(gè)自定義函數(shù)的程序。
解決方法
1.這里編寫一段程序想實(shí)現(xiàn),計(jì)算(A+B+C)/D的功能,直接引用自定義add函數(shù)即可實(shí)現(xiàn)此求和做除的功能,其中A、B、C作為全局變量,不需作為函數(shù)參數(shù)輸入,因?yàn)镈為聲明全局變量,所以要作為函數(shù)參數(shù)輸入。
clc clear all; global a global b global c a=1; b=2; c=3; d=10; disp(10); e=add(d) function w=add(d) global a global b global c w=(a+b+c)/d;
2.從中可以看到全局變量的使用方法,即先要聲明再賦值,最后如果在函數(shù)中直接使用,需要在函數(shù)體中再次聲明該變量為全局定義。
clc clear all; %聲明全局變量a,b,c global a global b global c %變量賦值 a=1; b=2; c=3; d=10; e=add(d) function w=add(d) %函數(shù)內(nèi)也要聲明全局變量 global a global b global c w=(a+b+c)/d;
3.此時(shí)如果點(diǎn)擊m程序上的“運(yùn)行”,則可在結(jié)果界面看到此錯(cuò)誤,提示不允許這樣定義函數(shù),這時(shí)可通過聲明主函數(shù)解決。
4.這里加入如下第一句主函數(shù)聲明語(yǔ)句后,編譯框會(huì)自動(dòng)識(shí)別出函數(shù)范圍,使函數(shù)變?yōu)榭烧郫B狀態(tài),不像之前,無法區(qū)分主程序和函數(shù)。
%聲明函數(shù)main(可以起另一個(gè)名字)后,就不會(huì)出錯(cuò)了 function main clc clear all; global a global b global c a=1; b=2; c=3; d=10; disp(10); e=add(d) function w=add(d) global a global b global c w=(a+b+c)/d;
5.程序識(shí)別出函數(shù)后,即可進(jìn)行折疊,如果一個(gè)程序中有較長(zhǎng)的主程序和較多函數(shù),即可邊編輯程序,邊進(jìn)行折疊,使其看起來更簡(jiǎn)潔。
6.此時(shí)運(yùn)行后,就沒有錯(cuò)誤提示,可以直接計(jì)算出結(jié)果,根據(jù)計(jì)算公式,可以知道此結(jié)果是正確的。這樣如何定義全局變量,如何將所有函數(shù)放入一個(gè)文件,介紹完成。
另外注意的點(diǎn)
在一個(gè)m文件中寫多個(gè)函數(shù),每個(gè)函數(shù)都以function開始,結(jié)束可以帶end,也可以不帶(這種情況下,出現(xiàn)另一個(gè)function或者到達(dá)文件結(jié)尾表明前一個(gè)function結(jié)束).
第一個(gè)函數(shù)作為主函數(shù),可以從該m文件外部調(diào)用,其它函數(shù)都是局部函數(shù),只能被m文件中的函數(shù)調(diào)用.主函數(shù)命名最好和m文件名相同,如果不同,則調(diào)用時(shí)應(yīng)該使用m文件名(不帶擴(kuò)展名).
到此這篇關(guān)于如何在1個(gè)Matlab m文件中定義多個(gè)函數(shù)直接運(yùn)行的文章就介紹到這了,更多相關(guān)Matlab m文件中定義多個(gè)函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語(yǔ)言嵌入informix基礎(chǔ)入門示例講解
這篇文章主要介紹了C語(yǔ)言嵌入informix基礎(chǔ)方法,大家參考使用2013-11-11舉例講解C語(yǔ)言程序中對(duì)二叉樹數(shù)據(jù)結(jié)構(gòu)的各種遍歷方式
這篇文章主要介紹了舉例講解C語(yǔ)言程序中對(duì)二叉樹數(shù)據(jù)結(jié)構(gòu)的各種遍歷方式,先序中序后序二叉樹遍歷幾乎成了最老生常談的數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)知識(shí),的朋友可以參考下2016-04-04C++學(xué)習(xí)進(jìn)階篇之類大小計(jì)算和this指針
this是C++中的一個(gè)關(guān)鍵字,也是一個(gè)const指針,它指向當(dāng)前對(duì)象,通過它可以訪問當(dāng)前對(duì)象的所有成員,下面這篇文章主要給大家介紹了關(guān)于C++學(xué)習(xí)進(jìn)階篇之類大小計(jì)算和this指針的相關(guān)資料,需要的朋友可以參考下2023-04-04C++實(shí)現(xiàn)LeetCode(121.買賣股票的最佳時(shí)間)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(121.買賣股票的最佳時(shí)間),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07C++重載運(yùn)算符實(shí)現(xiàn)分?jǐn)?shù)加減乘除
這篇文章主要為大家詳細(xì)介紹了C++重載運(yùn)算符實(shí)現(xiàn)分?jǐn)?shù)加減乘除,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06C++ BloomFilter布隆過濾器應(yīng)用及概念詳解
布隆過濾器是由布?。˙urton Howard Bloom)在1970年提出的 一種緊湊型的、比較巧妙的概率型數(shù)據(jù)結(jié)構(gòu),特點(diǎn)是高效地插入和查詢,可以用來告訴你 “某樣?xùn)|西一定不存在或者可能存在”,它是用多個(gè)哈希函數(shù),將一個(gè)數(shù)據(jù)映射到位圖結(jié)構(gòu)中2023-03-03深入解析C++的循環(huán)鏈表與雙向鏈表設(shè)計(jì)的API實(shí)現(xiàn)
這篇文章主要介紹了C++的循環(huán)鏈表與雙向鏈表設(shè)計(jì)的API實(shí)現(xiàn),文中的示例對(duì)于鏈表結(jié)點(diǎn)的操作起到了很好的說明作用,需要的朋友可以參考下2016-03-03C語(yǔ)言實(shí)現(xiàn)隨機(jī)抽獎(jiǎng)程序
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)隨機(jī)抽獎(jiǎng)程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09