最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

網(wǎng)友答疑20:Matlab定義的function使用工作區(qū)變量a時(shí)為什么報(bào)錯(cuò)?這是一個(gè)典型問題

2023-06-09 21:05 作者:freexyn_數(shù)學(xué)建模編程  | 我要投稿

0.問題來源

請問up,定義了function函數(shù)之后,里面有個(gè)變量a,需要計(jì)算a*x2+x+3,現(xiàn)在Matlab的工作區(qū)中有a=2這個(gè)變量,為什么一直報(bào)錯(cuò)說a無法識別呢?有什么辦法可以解決嗎?

1.問題復(fù)現(xiàn)

2.知識普及

Matlab中,工作區(qū)的變量,一般是在命令行窗口或者腳本文件中創(chuàng)建出來的,所以,這些變量的作用范圍,也是命令行窗口,或者腳本文件,這個(gè)工作區(qū)一般稱為:基礎(chǔ)工作區(qū);

此外,還存在一種程序代碼的組織形式,叫做函數(shù)文件,固定格式是,第一個(gè)可運(yùn)行的程序行,必須使用function關(guān)鍵字開頭,那么,函數(shù)文件中,使用的所有變量,有自己獨(dú)立的工作區(qū),叫做函數(shù)工作區(qū);

必須強(qiáng)調(diào),函數(shù)工作區(qū)和基礎(chǔ)工作區(qū)是不相通的,也就是說,兩者的變量不能相互直接使用,相互使用的方法是:參數(shù)傳遞。

3.參數(shù)傳遞

關(guān)于這個(gè)問題的變種很多,大家遇到的很多問題,實(shí)質(zhì)上都是這個(gè)問題,不論在什么平臺上被問到,我一般都會簡潔的回復(fù):參數(shù)傳遞;

問題來了,什么叫做參數(shù)傳遞?

從函數(shù)的定義說起,格式如:y=function(x),其中x稱為輸入?yún)?shù),y稱為輸出參數(shù),它們的產(chǎn)生和消亡都是在函數(shù)工作區(qū)的,不會自動逃逸到基礎(chǔ)工作區(qū);

所以,如果需要在基礎(chǔ)工作區(qū)使用它們,必須把變量傳遞出來,方法是:在命令行窗口或者腳本環(huán)境中,調(diào)用這個(gè)函數(shù)進(jìn)行運(yùn)算,生成的輸出參數(shù)就在基礎(chǔ)工作區(qū),相反,如果需要把基礎(chǔ)工作區(qū)的變量傳遞給函數(shù),那么,把變量作為函數(shù)的輸入?yún)?shù)傳遞進(jìn)去,基礎(chǔ)工作的變量就進(jìn)入函數(shù)工作區(qū)進(jìn)行運(yùn)算了;

上面講了基本原理,想必大家已經(jīng)云里霧里;

4.問題解決(舉例說明)

先說最基本的情況,定義函數(shù)y=fun(x),需要計(jì)算函數(shù)表達(dá)式y=x2+x+3,這個(gè)簡單,在命令行窗口直接調(diào)用即可:y=fun(1),結(jié)果:y=5

進(jìn)一步,如果基礎(chǔ)工作區(qū)有變量a=2,而定義的函數(shù)y=fun(x)中,需要計(jì)算函數(shù)表達(dá)式y=a*x2+x+3,大家注意,函數(shù)表達(dá)式有一個(gè)變量a,但是,函數(shù)工作區(qū)是沒有變量a的,如果在命令行窗口直接調(diào)用:y=fun(1),必然會報(bào)錯(cuò):未定義變量a,或者變量a無法識別,云云;

這個(gè)時(shí)候,調(diào)用的方法需要變一變思路,首先更改函數(shù)定義:y=fun(x,a),把a作為一個(gè)輸入?yún)?shù),這樣做的目的是,通過建立輸入?yún)?shù)這個(gè)坑位,打通函數(shù)工作區(qū)和基礎(chǔ)工作區(qū)的一條參數(shù)傳遞的路徑,然后,在命令行窗口調(diào)用的格式做相應(yīng)變化:y=fun(1,a),這里的前提是,基礎(chǔ)工作區(qū)已經(jīng)有了變量a=2,那么,結(jié)果:y=6

相關(guān)視頻推薦

End

網(wǎng)友答疑20:Matlab定義的function使用工作區(qū)變量a時(shí)為什么報(bào)錯(cuò)?這是一個(gè)典型問題的評論 (共 條)

分享到微博請遵守國家法律
武川县| 山东省| 马龙县| 蛟河市| 静海县| 镇坪县| 霍邱县| 嘉兴市| 绥滨县| 张家界市| 玛纳斯县| 雷州市| 长丰县| 峨眉山市| 三台县| 岚皋县| 磐安县| 锡林郭勒盟| 娄烦县| 双鸭山市| 盐亭县| 临邑县| 墨玉县| 都匀市| 新沂市| 清徐县| 巫溪县| 西藏| 城固县| 隆化县| 莱州市| 长武县| 乌拉特前旗| 兰西县| 安丘市| 邵阳县| 萝北县| 莎车县| 通道| 达州市| 德昌县|