在1個Matlab m文件中定義多個函數(shù)直接運行的操作方法
如何在1個Matlab m文件中定義多個函數(shù)直接運行
簡介
編寫運行程序會遇到“此上下文中不允許函數(shù)定義”錯誤。如果仍希望將全部程序放入一個m文件中,并可以直接運行出結果,該程序包括主程序及主程序中使用的函數(shù),這些函數(shù)內(nèi)容也會寫在同一m文件中,則需要用“function main”聲明主函數(shù),即主程序,同時也要合理使用全局變量,向多個函數(shù)傳遞中間參數(shù)值。接下來將用實例介紹,如何定義全局變量,如何編寫出可執(zhí)行的,包含多個自定義函數(shù)的程序。
解決方法
1.這里編寫一段程序想實現(xiàn),計算(A+B+C)/D的功能,直接引用自定義add函數(shù)即可實現(xiàn)此求和做除的功能,其中A、B、C作為全局變量,不需作為函數(shù)參數(shù)輸入,因為D為聲明全局變量,所以要作為函數(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.此時如果點擊m程序上的“運行”,則可在結果界面看到此錯誤,提示不允許這樣定義函數(shù),這時可通過聲明主函數(shù)解決。
4.這里加入如下第一句主函數(shù)聲明語句后,編譯框會自動識別出函數(shù)范圍,使函數(shù)變?yōu)榭烧郫B狀態(tài),不像之前,無法區(qū)分主程序和函數(shù)。
%聲明函數(shù)main(可以起另一個名字)后,就不會出錯了 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ù),即可邊編輯程序,邊進行折疊,使其看起來更簡潔。
6.此時運行后,就沒有錯誤提示,可以直接計算出結果,根據(jù)計算公式,可以知道此結果是正確的。這樣如何定義全局變量,如何將所有函數(shù)放入一個文件,介紹完成。
另外注意的點
在一個m文件中寫多個函數(shù),每個函數(shù)都以function開始,結束可以帶end,也可以不帶(這種情況下,出現(xiàn)另一個function或者到達文件結尾表明前一個function結束).
第一個函數(shù)作為主函數(shù),可以從該m文件外部調用,其它函數(shù)都是局部函數(shù),只能被m文件中的函數(shù)調用.主函數(shù)命名最好和m文件名相同,如果不同,則調用時應該使用m文件名(不帶擴展名).
到此這篇關于如何在1個Matlab m文件中定義多個函數(shù)直接運行的文章就介紹到這了,更多相關Matlab m文件中定義多個函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
舉例講解C語言程序中對二叉樹數(shù)據(jù)結構的各種遍歷方式
這篇文章主要介紹了舉例講解C語言程序中對二叉樹數(shù)據(jù)結構的各種遍歷方式,先序中序后序二叉樹遍歷幾乎成了最老生常談的數(shù)據(jù)結構基礎知識,的朋友可以參考下2016-04-04C++實現(xiàn)LeetCode(121.買賣股票的最佳時間)
這篇文章主要介紹了C++實現(xiàn)LeetCode(121.買賣股票的最佳時間),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-07-07深入解析C++的循環(huán)鏈表與雙向鏈表設計的API實現(xiàn)
這篇文章主要介紹了C++的循環(huán)鏈表與雙向鏈表設計的API實現(xiàn),文中的示例對于鏈表結點的操作起到了很好的說明作用,需要的朋友可以參考下2016-03-03