Matlab自学笔记四:调用函数基本方法、传递参数、函数工作区、命令语法、调用匿名函数

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

 

你可能感兴趣的:(matlab,算法,开发语言)