哥们姐们,今天跟大家唠唠MATLAB里面那个“function”怎么用。这玩意儿,我刚开始学的时候也是一头雾水,觉得挺高级的,后来折腾明白了,才发现真是个好东西。我把自己那会儿怎么一步一步摸索过来的,都给你们捋一捋,保准你们看完就能上手。
本站为89游戏官网游戏攻略分站,89游戏每日更新热门游戏,下载请前往主站地址:www.gm89.icu
我跟“function”的初次见面
刚开始用MATLAB,我就跟个傻小子似的,所有的代码都一股脑儿写在命令窗口,或者一个大大的脚本文件里。写个小程序,比如算个平均值,我就把数据输进去,然后“求和”再“除以个数”。下次要算别的平均值,再写一遍,或者复制粘贴改几个数。时间久了,我就觉得不对劲,这代码写得又臭又长,改一点点东西都得翻半天,效率低得要命。
有一次,我一个老同事看我写代码那费劲样儿,就跟我说:“小伙子,你这不行,得学学‘function’,把重复的活儿都包起来。”当时我听得云里雾里,什么包起来?能吃吗?他简单给我演示了一下,我就看到他噼里啪敲了几行字,然后输入几个数字,屏幕上就蹦出了结果。我当时就震惊了,这不就是传说中的“一劳永逸”吗!
动手捣鼓:从0到1写第一个函数
回来我就开始琢磨了。我同事给我看的是个求两个数和的例子,我就想着,我也来一个。我那时候就想,反正就是把一段代码“打包”起来,以后想用就直接“喊”它出来干活儿。
- 第一步:建个新文件。
我打开MATLAB,点击左上角的“新建”,然后选“函数”。这时候就弹出一个新的编辑器窗口,里面已经自动生成了几行代码,长这样:
function [outputArg1, outputArg2] = untitled(inputArg1, inputArg2)
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
end
我一看,好家伙,还有模有样的。这个“untitled”就是它的默认名字,我肯定不能用这个。
- 第二步:改名字,定输入输出。
我琢磨着要算两个数的和,那肯定得有两个数进去,然后出来一个和。我就把名字改成了“mySum”,把输入改成了“a”和“b”,输出就一个“c”。于是就变成了这样:
function [c] = mySum(a, b)
%MYPROCESSTEST Summary of this function goes here
% Detailed explanation goes here
end
这里有几个关键点,我当时也是愣了好一会儿才明白:
- 那个 `function` 开头,是告诉MATLAB,我这要写个函数了。
- 方括号 `[c]` 里面放的是函数算完要“吐出来”的结果,可以有多个,用逗号隔开。
- 等号 后面是函数的名字,我这里起了个“mySum”。
- 圆括号 `(a, b)` 里面放的是函数要“吃进去”的数据,也就是你给它的参数,也可以有多个,同样用逗号隔开。
- 那个 `end`,就是告诉MATLAB,我的函数代码到这儿就结束了。这玩意儿可不能少,少了就报错,我那会儿就犯过这错。
- 第三步:往里填代码。
既然是要算和,那代码就很简单了,就一行:`c = a + b;`。我就把它写在了 `function` 和 `end` 中间。
function [c] = mySum(a, b)
%MYPROCESSTEST Summary of this function goes here
% Detailed explanation goes here
c = a + b;
end
- 第四步:保存文件。
我把这个文件保存了,MATLAB会提醒你保存到哪儿,文件名它会默认给你写成函数名“mySum.m”。这里有个坑,就是文件名必须跟函数名一模一样,不然MATLAB找不着。 我刚开始就没注意,随便起个名,结果一运行就报错,找了半天原因才发现。
第一次调用:享受成果
文件保存好了,接下来就是用了。我回到MATLAB的命令窗口。
我敲了一行:`result = mySum(5, 3);`,然后回车。
命令窗口立马蹦出一行:`result = 8`
当时我就兴奋了!成功了!我第一个函数就这么跑起来了!
我又试了试:`mySum(10, 20)`,结果是30。想算啥就算根本不用再写一遍加法代码,太爽了!
我的一些心得体会
后来我用得多了,就明白了为啥要用这个“function”。
- 代码整洁多了。 以前一个文件几百行代码,找个bug像大海捞针。现在都分门别类地装在不同的函数里,哪个功能出问题就看哪个函数,一目了然。
- 省事儿,效率高。 重复的功能只写一遍,以后直接调用。比如我要算100个不同数据集的平均值,以前可能要复制粘贴100次,现在一个循环,调用100次函数就搞定了,省老鼻子事儿了。
- 方便跟人协作。 几个人一起写代码,每个人负责写几个功能函数,拼起来就行。大家互不干扰,出了问题也知道是谁的函数出了岔子。
这只是最基础的用法。后来我还摸索出了怎么写多个输出的函数(就是方括号里多几个变量),怎么写没有输入输出的函数(比如只用来显示一段文字),还有怎么在一个函数里调用另一个函数。这些都是在这个最基本的框架上一点点加东西的。
所以说,MATLAB这个`function`,入门看起来有点门槛,但一旦你迈过去,真的是一片新天地。新手朋友们,别害怕,跟着我这套路,自己动手试几次,很快就能玩转它了!