1.调用函数的基本方法
题目:创建函数y=x²+x+1
首先,使用上一篇的创建函数文件的方法(推荐先看上一篇:Matlab创建函数文件、函数语法定义、匿名函数、多元函数、局部函数等知识串联理解),创建之后,函数的架构大概是:y=myfun(x)= x²+x+1,其中y是因变量,myfun是函数名,x²+x+1是表达式;
那么,调用格式就显而易见:
>>y=myfun(2)
y=7
说明,使用函数名称调用该函数,调用时必须输入实参,也就是x=2的具体数值,Matlab内部执行函数表达式运算之后,返回结果。
2.匿名函数的调用
题目1:创建二元函数z=x²+y²
以匿名函数方式创建函数:z=@(x,y)x²+y²;
调用格式如下:
>> z(1,2)
ans=5
说明,匿名函数的函数名就是等号左边的变量名,调用时,使用小括号把自变量输入(如果有多个自变量使用逗号分开)。
3.调用函数的语法
通过上述两个示例,可以得出Matlab调用函数的一般语法
[out1,out2]=function(input1,input2)
说明,调用时,把输入参数括在小括号内,有多个输入参数时,用逗号分隔;有多个输出参数时,放入中括号内,用逗号分隔,如果不指定输入变量,则Matlab使用默认变量ans作为输入变量;
这是函数语法,还有一种命令语法。
4.命令语法
当一个函数没有输出,只有输入,且所有输入都是字符型数据时,以下两种语法是等效的:
functionName(input1,input2,...,inputN) %函数语法
functionName input1 input2 ... inputN %命令语法
说明,命令语法,函数名和输入变量使用空格隔开,如果有多个输入变量,也使用空格隔开;
这个知识可能没看懂,别着急,下面会举例。
5.调用Matlab内置函数
Matlab中预定义了很多函数,可以直接调用,无需再进行自定义;
(1)计算正弦值,使用函数sin,调用方法:
>>sin(0)
ans=0
(2)创建2*3的全1矩阵,使用函数ones,调用方法:
>>a=ones(2,3)
a=
1 1 1
1 1 1
(3)显示一串字符,使用函数disp,调用方法:
>>disp('abcd')
abcd
这里符合命令语法的调用情况,所以,也可以写出:
>>disp abcd
abcd
(4)常用的清除变量函数clear,和清除屏幕函数clc,调用方法:
>>clear
>>clc
6.函数工作区
函数工作区,是函数运行时产生的数据和变量的存储区;
与之对应的是,
基础工作区,是命令行窗口或脚本文件中产生的数据和变量的存储区;
注意,这两个工作区之间不能相互访问对方的变量,这是很多初学者经常编程报错的原因之一,两者交换数据的方式:传递参数;
另外,很多同学为了方便,可能会使用全局变量的方式,以达到两个工作区传递参数的目的,非常不推荐,除非编程逻辑非常缜密,否则可能由于变量生效范围太大,导致许多不可预期的报错;
7.传递参数示例
题目:计算直径为d的圆的面积
创建函数文件,程序代码如下:
function y = myfun(d)
r=d/2;
y=2*3.14*r²;
end
创建脚本文件,或者在命令行窗口,程序代码如下:
>>d=2; %基础工作区中的变量
>>s=myfun(d)
s=6.28
>>r
报错:未定义变量'r'
r是函数工作区中的变量,在基础工作区无法使用(初学者常犯之错误)
(微信公众号:freexyn)
End