购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.7 自变量与函数值

MATLAB的内部函数绝大多数被设计成可以接受数组(比如向量或矩阵)作为自变量,它的输出根据函数性质可以是一个标量,也可以是一个数组.比如函数sin( x ),它可以接受一个标量自变量 x ,也可以接受一个向量自变量 x ,也可以接受一个矩阵自变量 x ,甚至任何维的数组自变量 x ,产生的输出是一个和 x 相同维数的数组.当输入一个矩阵 x 时,sin( x )输出一个矩阵

即sin( x )对一个数组求函数值时,相当于对它的每一个元素求函数值,并输出相同大小的函数值数组.正因为如此,使得MATLAB可以批量处理数据,具备流水线方式的数据运算能力,充分发挥了现代计算机在硬件方面的功能,因此可以认为MATLAB支持高性能计算.

为了充分发挥MATLAB高性能计算能力,在写自己的自定义函数时,也要注意到函数的输入尽可能接受向量或矩阵或更一般的数组,这经常用到支持数组运算的运算符:点乘、点除、点幂等,比如:.*,./,.^等,以及支持存取数组元素的逻辑下标.

例题1.10 编写函数

的自定义代码.要求当输入一个标量 x 时该自定义函数可以求出一个函数值;当输入一个向量 x 时,该自定义函数可以求出每个分量的函数值,并返回函数值向量;当输入一个矩阵时,该自定义函数也可以求所有矩阵元素的函数值,并返回函数值矩阵;当输入任意维的数组 x ,该自定义函数可以求所有数组元素的函数值,并返回函数值数组.

解: 代码要支持数组运算符,所以要使用点运算符“.*,.^”运算符,这样处理可以接受数组输入,它的输出也是一个同样大小的数组,这样调用一次函数 f x )可以求多个实数的函数值,有利于数据的批量处理.如果去掉点运算符,写成自定义函数 g x ),则只能接受标量输入,每次只能求一个实数的函数值.

下面程序mdfht.m调用自定义函数 f x ),可以批量求出用描点法绘制式(1.3)所示函数的图象时所需要的大量函数值. UXNZvC30+BwaHdERxTKGyWEgBBxeqDkwnvarllfY+sWFJPMBXCgHtDPpV36cHsGW

点击中间区域
呼出菜单
上一章
目录
下一章
×