MATLAB函数调用与参数传递:核心技巧与实例

1.调用函数的基本方法

题目:创建函数y=x²+x+1

首先,使用上一篇的创建函数文件的方法( 点击先看上一篇文章),创建之后,函数的架构大概是:y=myfun(x)= x²+x+1,其中y是因变量,myfun是函数名,x²+x+1是表达式;

那么,调用格式就显而易见:

>>y=myfun(2)

y=7

说明,使用函数名称调用该函数,调用时必须输入实参,也就是x=2的具体数值,Matlab内部执行函数表达式运算之后,返回结果。

2.匿名函数的调用

题目:创建二元函数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是函数工作区中的变量,在基础工作区无法使用(初学者常犯之错误);

那么问题来了,如何在基础工作区使用变量r呢?欢迎留言交流;

附本文相关视频:

(微信公众号:freexyn)

End

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空