Matlab学习记录(函数)
Matlab中的内建函数
matlab提供了许多内建的数学函数,如三角函数、对数函数等,可以方便用户直接调用进行计算。调用的格式为:
r=MathFun(x)
其中r为函数计算结果,MathFun为函数名,x为输入值。一个函数可以直接调用另一个函数。
Matlab中的内建函数很多,常用的列在下表中:
| 函数符号 | 名称 | 函数符号 | 名称 |
|---|---|---|---|
| sin(x) | 正弦函数 | asin(x) | 反正弦函数 |
| cos(x) | 余弦函数 | acos(x) | 反余弦函数 |
| tan(x) | 正切函数 | atan(x) | 反正切函数 |
| cot(x) | 余切函数 | acot(x) | 反余切函数 |
| sec(x) | 正割函数 | asec(x) | 反正割函数 |
| csc(x) | 余割函数 | acsc(x) | 反余割函数 |
| sinh(x) | 双曲正弦函数 | coth(x) | 双曲余弦函数 |
| cosh(x) | 双曲余弦函数 | cech(x) | 双曲正割函数 |
| tanh(x) | 双曲正切函数 | ctanh(x) | 双曲余割函数 |
| abs(x) | 绝对值 | sum(x) | 求和 |
| max(x) | 最大值 | min(x) | 最小值 |
| sqrt(x) | 开平方 | exp(x) | 以e为底的指数 |
| log(x) | 自然对数 | log10(x) | 以10为底的对数 |
| sign(x) | 符号函数 | mod(x) | 两整数相除的余数 |
| conj(x) | 求复数的共轭 | imag(x) | 取复数的虚部 |
| real(x) | 取复数的实部 | realmin | 最小正数 |
| i,j | 虚数单位 | pi | π |
| eps | 计算机的最小正数 | realmax | 最大正数 |
| break | 退出循环 | Inf inf | 无穷大 |
| end | 循环语句结束 | NaN | 非数 |
| nargin | 输入参数个数 | nargout | 输出参数个数 |
| varargin | 变长度输入宗量 | varargout | 变长度输出宗量 |
| round(x) | 四舍五入到最近整数 | ceil(x) | 右取整 |
| fix(x) | 最接近0的整数 | floor(x) | 左取整 |
Matlab自定义函数
Matlab有多种定义函数的方法,常用的有3种:
- 用function构造函数
- 用inline构造函数
- 用syms构造符号函数
用function构造函数
此种方法构造函数,需要用.m文件保存。函数名应该与文件名一致,用户在调用的时候就像调用内建函数一样调用就可以了。
构造函数的格式为:
[输出实参表]=函数名(输入实参表)
注释部分
函数体语句
return 语句(可以有可以没有)
例:
function z=hello(x,y)
z=(x+y)/2;
>> a=[1,2,3];
>> b=[4,5,6];
>> c=hello(a,b)
c =
2.5000 3.5000 4.5000
>> feval('hello',a,b)
ans =
2.5000 3.5000 4.5000
用inline构造函数
可以在命令窗口直接利用inline函数定义函数。如下:
>> myfun=inline('(x+y)/2','x','y');
>> a=[1 2 3];
>> b=[4 5 6];
>> c=myfun(a,b)
c =
2.5000 3.5000 4.5000
>> feval(myfun,a,b)
ans =
2.5000 3.5000 4.5000
用syms构造符号函数
符号函数通常用syms或sym进行构造。
>> syms x y;
>> myfun=(x+y)/2
myfun =
x/2 + y/2
>> subs(myfun,{x,y},{a,b})
ans =
[ 5/2, 7/2, 9/2]
syms函数只能用subs进行求解。
多项式相关函数
Matlab中关于多项式计算的函数很多,主要有:
- polyval(x)
- conv(x)
polyval(x)
调用格式为:
y=polyval(a,x0)
多项式系数向量按照降序排列。
>> a=[1,0,3,-1,2];
>> polyval(a,1)
ans =
5
conv(x)
用来计算两个多项式的乘积(多项式卷积函数)。调用格式为:
conv(A,B)
>> a=[1,0,3,-1,2];
>> b=[6,5,4,1];
>> conv(a,b)
ans =
6 5 22 10 19 9 7 2
向量和矩阵运算函数
向量运算中的常用函数
| 函数名 | 调用形式 | 函数意义 |
|---|---|---|
| linspace | x=linspace(a,b,n) | 将a,b分割成n分,生成向量 |
| zeros | x=zeros(n,m) | 昌盛n行m列的零矩阵 |
| length | len=length(x) | 返回响亮的长度或者矩阵的最大维数 |
| size | size(x) | 返回矩阵的行数和列数 |
| + | x+y | 同维向量相加 |
| * | c*x | 标量和向量相乘 |
| dot | dot(x,y) | 向量点积 |
| cross | cross(x,y) | 向量叉积 |
矩阵的基本运算
矩阵元素提取
矩阵元素提取的形式为:A(vr,vc),如果用冒号,表示全部行或列。也可以分片取。如:
A(1,3) 表示矩阵的第1行,第3列这个元素
A(1:3,[3 5 7])表示取矩阵第1,2,3行和第3,5,7列的元素
A(:,3) 表示取第3列的所有元素
特殊矩阵的创建函数
| 函数 | 功能 |
|---|---|
| ones(n) | 创建n阶矩阵 |
| ones(m,n) | 创建m行n列的矩阵 |
| ones(m,n,p) | 创建m行n列p页的三维矩阵 |
| eye(n) | 创建n阶单位阵 |
| zeros(m,n,p) | 创建全为0的矩阵 |
| rand(m,n,p) | 创建均匀分布的矩阵 |
| randn(m,n,p) | 创建正态分布的矩阵 |
| pascal(n) | 创建帕斯卡矩阵 |
| magic(n) | 创建魔术矩阵 |
构造矩阵
构造矩阵是指由已有的矩阵,通过矩阵运算来得到新的矩阵。主要有:矩阵转置、矩阵分片提取、矩阵合并(列扩展)、矩阵合并(行扩展)、对角化等手段。
注意:矩阵中的元素可以是整数、浮点数、复数。
矩阵运算、矩阵操作函数
| 操作符 | 含义 | 操作符 | 含义 |
|---|---|---|---|
| A+B | 矩阵相加 | A-B | 矩阵减法 |
| A*B | 矩阵乘法 | A.*B | 矩阵点乘 |
| A/B | 矩阵右除 | A./B | 矩阵右点除 |
| A\B | 矩阵左除 | A.\B | 矩阵左点除 |
| A^n | 矩阵乘方 | A.^n | 矩阵元素乘方 |
| rot90(A) | 矩阵旋转90° | fliplr(A) | 矩阵左右翻折 |
| flipud(A) | 矩阵上下翻折 | reshape(A) | 保持元素不变改变矩阵的维数 |
| norm(A) | 向量或矩阵的范数 | rank(A) | 矩阵的秩 |
| det(A) | 矩阵的行列式 | trace(A) | 矩阵的迹 |
| inv(A) | 方阵的逆矩阵 | eig(A) | 特征值与特征向量 |
| size(A) | 矩阵的阶数 | cond(A) | 矩阵的条件数 |
| lu(A) | 矩阵的LU分解 | qr(A) | 矩阵的QR分解 |
Matlab学习记录(函数)的更多相关文章
- 【编程语言】Matlab 学习记录
title: Matlab Learning Record date: 2020-05-23 20:11:26 author: liudongdong1 img: https://gitee.com/ ...
- matlab学习记录
1.在命令框输入preferences,可以调整字体大小 2.产生正太分布函数 参考:https://blog.csdn.net/s334wuchunfangi/article/details/816 ...
- Python3.5入门学习记录-函数
Python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也 ...
- matlab学习笔记 函数bsxfun repmat
一.举例 a=rand(3,1);b=rand(1,3); c=bsxfun(@plus,a,b); d=a*b; c和d的运算类似,只不过c是外加,d是外乘. 作用:速度快>for循环> ...
- Matlab 进阶学习记录
最近在看 Faster RCNN的Matlab code,发现很多matlab技巧,在此记录: 1. conf_proposal = proposal_config('image_means', ...
- Matlab学习笔记 figure函数
Matlab学习笔记 figure函数 matlab中的 figure 命令,能够创建一个用来显示图形输出的一个窗口对象.每一个这样的窗口都有一些属性,例如窗口的尺寸.位置,等等.下面一一介绍它们. ...
- matlab学习笔记 bsxfun函数
matlab学习笔记 bsxfun函数 最近总是遇到 bsxfun这个函数,前几次因为无关紧要只是大概看了一下函数体去对比结果,今天再一次遇见了这个函数,想想还是有必要掌握的,遂查了些资料总结如下. ...
- Python大神成长之路: 第三次学习记录 集合 函数 装饰 re
学习记录day03 字符串可以直接切片,But字符串不可修改 字符串修改:生成了一个新的字符串 LIst修改,在原基础上修改(原内存上) 集合是一个无序的,不重复的数据组合,它的主要作用如 ...
- Lua和C++交互 学习记录之七:C++全局函数注册为Lua模块
主要内容转载自:子龙山人博客(强烈建议去子龙山人博客完全学习一遍) 部分内容查阅自:<Lua 5.3 参考手册>中文版 译者 云风 制作 Kavcc vs2013+lua-5.3.3 1 ...
随机推荐
- 1366 - Incorrect string value:'\xE5\xBC\xA0\xE4\xB8\x89' for column 'name' a 错误修改
把name的字符集修改成 utf8 ,然后把表关了从新打开,就可以了 如果还不行,就从新创表,在创表的时候修改name的字符集 如果还不行,就修改my.ini 它在你的mysql安装路径里 [mysq ...
- 日期和时间-time时间模块
时间的检测 #时间的检测 #导入时间模块 import time #返回当前时区与格林尼治所在时区的相差秒数(推荐) print(time.timezone) #输出结果:-28800 #返回当前时区 ...
- 跟踪记录ABAP对外部系统的RFC通信
对SAP系统而言,RFC最常见的系统间通信方式,SAP与SAP系统及SAP与非SAP系统之间的连接都可以使用它.它的使用便利,功能强大,在各种接口技术中,往往是最受(ABAP开发者)青睐的选择. 查询 ...
- values.xml:3:5-58:857: AAPT: error: resource android:attr/fontVariationSettings not found.
修改app/build.gradle中的版本 compileSdkVersion 28 targetSdkVersion 28 具体不知道为何要修改为28,但在android/build.gradle ...
- 运用html常用标签和css定位等学做模仿百度导航页面
导航部分文字链接,鼠标触碰变颜色,除百度logo引用图片外,其它均代码编写.注释部分是一开始用的百度一下截图做的按钮,后来用div填充颜色写了一个按钮.效果图如下. HTML代码如下: <!DO ...
- POJ1830(异或高斯消元)
对于某个开关,都有n个选项可能影响它的结果,如果会影响,则系数为1,否则系数为0:最后得到自由元的个数,自由元可选0也可选1. #include <cstdio> #include < ...
- hdu5036 Explosion 传递闭包
大哲哥的讲课内容 根据期望的线性性,得到总期望为各个点被轰的概率(不会证,好像是这样吧) 传递闭包解决出每个点的祖先(能到达它的点)就能算概率了 bitset能贡献1/w的复杂度,而且导致Floyd只 ...
- aix OPATH ISSUE
issue 1: OPatch cannot find a valid oraInst.loc file to locate Central Inventory (OPatch failed with ...
- 牛客网Java刷题知识点之什么是匿名内部类、匿名内部类的使用原则、匿名内部类初始化、匿名内部类使用的形参为何要为final 和 案例
不多说,直接上干货! 什么是匿名内部类 匿名内部类就是没有名字的内部类. 不使用关键字class . extends .implements 没有构造函数 必须继承其他类或实现其他接口 正因为没有名字 ...
- nodejs 实践:express 最佳实践(二) 中间件
express 最佳实践(二):中间件 第一篇 express 最佳实践(一):项目结构 express 中最重要的就是中间件了,可以说中间件组成了express,中间件就是 express 的核心. ...