日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

在1個Matlab?m文件中定義多個函數直接運行的操作方法_C 語言

作者:KANLON ? 更新時間: 2023-01-17 編程語言

如何在1個Matlab m文件中定義多個函數直接運行

簡介

編寫運行程序會遇到“此上下文中不允許函數定義”錯誤。如果仍希望將全部程序放入一個m文件中,并可以直接運行出結果,該程序包括主程序及主程序中使用的函數,這些函數內容也會寫在同一m文件中,則需要用“function main”聲明主函數,即主程序,同時也要合理使用全局變量,向多個函數傳遞中間參數值。接下來將用實例介紹,如何定義全局變量,如何編寫出可執行的,包含多個自定義函數的程序。

解決方法

1.這里編寫一段程序想實現,計算(A+B+C)/D的功能,直接引用自定義add函數即可實現此求和做除的功能,其中A、B、C作為全局變量,不需作為函數參數輸入,因為D為聲明全局變量,所以要作為函數參數輸入。

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.從中可以看到全局變量的使用方法,即先要聲明再賦值,最后如果在函數中直接使用,需要在函數體中再次聲明該變量為全局定義。

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)
%函數內也要聲明全局變量
global a
global b
global c
w=(a+b+c)/d;

3.此時如果點擊m程序上的“運行”,則可在結果界面看到此錯誤,提示不允許這樣定義函數,這時可通過聲明主函數解決。

4.這里加入如下第一句主函數聲明語句后,編譯框會自動識別出函數范圍,使函數變為可折疊狀態,不像之前,無法區分主程序和函數。

%聲明函數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.程序識別出函數后,即可進行折疊,如果一個程序中有較長的主程序和較多函數,即可邊編輯程序,邊進行折疊,使其看起來更簡潔。

6.此時運行后,就沒有錯誤提示,可以直接計算出結果,根據計算公式,可以知道此結果是正確的。這樣如何定義全局變量,如何將所有函數放入一個文件,介紹完成。

另外注意的點

在一個m文件中寫多個函數,每個函數都以function開始,結束可以帶end,也可以不帶(這種情況下,出現另一個function或者到達文件結尾表明前一個function結束).
第一個函數作為主函數,可以從該m文件外部調用,其它函數都是局部函數,只能被m文件中的函數調用.主函數命名最好和m文件名相同,如果不同,則調用時應該使用m文件名(不帶擴展名).

原文鏈接:https://blog.csdn.net/weixin_37610397/article/details/80441523

欄目分類
最近更新