MATLAB中常用的基本数学函数以及三角函数.docx
- 文档编号:10922179
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:14
- 大小:20.76KB
MATLAB中常用的基本数学函数以及三角函数.docx
《MATLAB中常用的基本数学函数以及三角函数.docx》由会员分享,可在线阅读,更多相关《MATLAB中常用的基本数学函数以及三角函数.docx(14页珍藏版)》请在冰豆网上搜索。
MATLAB中常用的基本数学函数以及三角函数
MATLAB中常用的基本数学函数以及三角函数
MATLAB中常用的基本数学函数有:
abs(x):
纯量的绝对值或向量的长度 angle(z):
复数z的相角(Phaseangle)
sqrt(x):
开平方 real(z):
复数z的实部
imag(z):
复数z的虚部 conj(z):
复数z的共轭复数
round(x):
四舍五入至最近整数 fix(x):
无论正负,舍去小数至最近整数
floor(x):
地板函数,即舍去正小数至最近整数 ceil(x):
天花板函数,即加入正小数至最近整数
rat(x):
将实数x化为分数表示 rats(x):
将实数x化为多项分数展开
rem(x,y):
求x除以y的余数 gcd(x,y):
整数x和y的最大公因数
lcm(x,y):
整数x和y的最小公倍数 exp(x):
自然指数
pow2(x):
2的指数 log(x):
以e为底的对数,即自然对数
log2(x):
以2为底的对数 log10(x):
以10为底的对数
sign(x):
符号函数(Signumfunction)。
当x<0时,sign(x)=-1;
当x=0时,sign(x)=0;
当x>0时,sign(x)=1。
-------------------------------------------------
MATLAB中常用的三角函数有:
sin(x):
正弦函数 cos(x):
余弦函数
tan(x):
正切函数 asin(x):
反正弦函数
acos(x):
反余弦函数 atan(x):
反正切函数
atan2(x,y):
四象限的反正切函数 sinh(x):
超越正弦函数
cosh(x):
超越余弦函数 tanh(x):
超越正切函数
asinh(x):
反超越正弦函数 acosh(x):
反超越余弦函数
atanh(x):
反超越正切函数
适用于向量的常用函数有:
min(x):
向量x的元素的最小值 max(x):
向量x的元素的最大值
mean(x):
向量x的元素的平均值 median(x):
向量x的元素的中位数
std(x):
向量x的元素的标准差 diff(x):
向量x的相邻元素的差
sort(x):
对向量x的元素进行排序(Sorting) length(x):
向量x的元素个数
norm(x):
向量x的欧氏长度 sum(x):
向量x的元素总和
prod(x):
向量x的元素总乘积 cumsum(x):
向量x的累计元素总和
cumprod(x):
向量x的累计元素总乘积 dot(x,y):
向量x和y的内积
cross(x,y):
向量x和y的外积
MATLAB中常用到的永久常数有:
i或j:
基本虚数单位 eps:
系统的浮点(Floating-point)精确度
inf:
无限大,例如1/0 nan或NaN:
非数值(Notanumber),例如0/0
pi:
圆周率p(=3.1415926...) realmax:
系统所能表示的最大数值
realmin:
系统所能表示的最小数值 nargin:
函数的输入引数个数
nargin:
函数的输出引数个数
MATLAB中基本绘图函数有:
plot:
x轴和y轴均为线性刻度 loglog:
x轴和y轴均为对数刻度
semilogx:
x轴为对数刻度,y轴为线性刻度 semilogy:
x轴为线性刻度,y轴为对数刻度
若要画出多条曲线,只需将坐标对依次放入plot函数即可:
plot(x,f1(x),x,f2(x));
若要改变颜色,在坐标对后面加上相关字串即可:
plot(x,f1(x),'c',x,f2(x),'g');
若要同时改变颜色及图线型态(Linestyle),也是在坐标对后面加上相关字串即可:
plot(x,f1(x),'co',x,f2(x),'g*');
plot绘图函数的参数有:
字元 颜色 字元 图线型态
y 黄色 . 点
k 黑色 o 圆
w 白色 x x
b 蓝色 + +
g 绿色 * *
r 红色 - 实线
c 亮青色 :
点线
m 锰紫色 -. 点虚线
-- 虚线
图形完成后,可以用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围。
此外,MATLAB也可对图形加上各种注解与处理:
xlabel('');%x轴注解
ylabel('');%y轴注解
title('');%图形标题
legend('','');%图形注解
gridon;%显示格线
我们可用subplot来同时画出数个小图形于同一个视窗之中:
subplot(2,2,1);plot(x,f1(x));
subplot(2,2,2);plot(x,f2(x));
subplot(2,2,3);plot(x,f3(x));
subplot(2,2,4);plot(x,f4(x));
-------------------------------------------------
matlab中其他二维绘图函数:
bar:
长条图 errorbar:
图形加上误差范围
fplot:
较精确的函数图形 polar:
极坐标图
hist:
累计图 rose:
极坐标累计图
stairs:
阶梯图 stem:
针状图
fill:
实心图 feather:
羽毛图
compass:
罗盘图 quiver:
向量场图
MATLAB算术运算命令
%prod
对于向量返回的是其所有元素的积;
a=prod([1,2,3,4])
a=24;
对于矩阵返回的是按列向量的所有元素的积,然后组成一行向量;
b=magic(3)
b=
8 1 6
3 5 7
4 9 2
c=prod(b)
c=
964584
%reshape
把矩阵改变成指定的形状,但是元素个数不变
a=[12
34]
如果使用b=reshape(a,1,4),则得到的结果是:
b=[1324]
如果想得到b=[1234],需要使用b=reshape(a',1,4)
因为reshape使用的列优先!
%mean2、std2
mean2:
计算矩阵元素的平均数
std2:
计算矩阵元素的标准差
%mean、std
Formatrices,MEAN(X,DIM)takesthemeanalongthedimensionDIMofX
%rand
产生的是0到1(不包括1)的随机数.
matlab的rand函数生的是伪随机数,即由种子递推出来的,相同的种子,生成相同的随机数.
matlab刚运行起来时,种子都为初始值,因此每次第一次执行rand得到的随机数都是相同的.
1.多次运行,生成相同的随机数方法:
用rand('state',S)设定种子
S为35阶向量,最简单的设为0就好
例:
rand('state',0);rand(10)
2.生成不同的随机数方法:
试着产生和时间相关的随机数,种子与当前时间有关.
rand('state',sum(100*clock))
即:
rand('state',sum(100*clock));rand(10)
只要执行rand('state',sum(100*clock));只要当前计算机时间不同,生成的随机值就不同.
也就是如果时间相同,生成的随机数还是会相同.
在你计算机速度足够快的情况下,试运行一下:
rand('state',sum(100*clock));A=rand(5,5);rand('state',sum(100*clock));B=rand(5,5);
A和B是相同.
所以建议再增加一个随机变量,变成:
rand('state',sum(100*clock)*rand
(1));
%randn
产生标准正态分布的随机数或矩阵的函数
rand是0-1的均匀分布,randn是均值为0方差为1的正态分布
randn
产生均值为0,方差σ^2=1,标准差σ=1的正态分布的随机数或矩阵的函数。
用法:
Y=randn(n)
返回一个n*n的随机项的矩阵。
如果n不是个数量,将返回错误信息。
Y=randn(m,n)或Y=randn([mn])
返回一个m*n的随机项矩阵。
Y=randn(m,n,p,...)或Y=randn([mnp...])
产生随机数组。
Y=randn(size(A))
返回一个和A有同样维数大小的随机数组。
randn
返回一个每次都变化的数量。
s=randn('state')
举例:
Example1.R=randn(3,4)将生成矩阵
R=
1.16500.35160.05910.8717
0.6268-0.69651.7971-1.4462
0.07511.69610.2641-0.7012
Example2.产生一个随机分布的指定均值和方差的矩阵:
将randn产生的结果乘以标准差,然后加上期望均值即可。
例如,产生均值为0.6,方差为0.1的一个5*5的随机数方式如下:
x=.6+sqrt(0.1)*randn(5)
x=
0.87130.47350.81140.09270.7672
0.99660.81820.97660.68140.6694
0.09600.85790.21970.26590.3085
0.14430.82510.59371.0475-0.0864
0.78061.00800.55040.34540.5813
%repmat
矩阵堆叠函数.
使用用法如下:
B=repmat(A,m,n)
B=repmat(A,[mn])
B=repmat(A,[mnp...])
这是一个处理大矩阵且内容有重复时使用,其功能是以A的内容堆叠在(MxN)的矩阵B中,B矩阵的大小由MxN及A矩阵的内容决定,如果A是一个3x4x5的矩阵,有B=repmat(A,2,3)则最后的矩阵是6x12x5
例如:
>>B=repmat([12;34],2,3)
B=
1 2 1 2 1 2
3 4 3 4 3 4
1 2 1 2 1 2
3 4 3 4 3 4
其结果变为4X6
%fix,floor,ceil,round
Matlab取整函数
具体应用方法如下:
fix —朝零方向取整,如fix(-1.3)=-1;fix(1.3)=1;
floor—朝负无穷方向取整,如floor(-1.3)=-2;floor(1.3)=1;
ceil—朝正无穷方向取整,如ceil(-1.3)=-1;ceil(1.3)=2;
round—四舍五入到最近的整数
%max/min 求矩阵的最大值和最小值
求矩阵A的最大值的函数有3种调用格式,分别是:
(1)max(A):
返回一个行向量,向量的第i个元素是矩阵A的第i列上的最大值。
(2)[Y,U]=max(A):
返回行向量Y和U,Y向量记录A的每列的最大值,U向量记录每列最大值的行号。
(3)max(A,[],dim):
dim取1或2。
dim取1时,该函数和max(A)完全相同;dim取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大值。
(4)MIN(X,Y)returnsanarraythesamesizeasXandYwiththesmallestelementstakenfromXorY.Eitheronecanbeascalar.
求最小值的函数是min,其用法和max完全相同。
%size/length/numel
size:
获取数组的行数和列数
length:
数组长度(即行数或列数中的较大值)
numel:
元素总数。
s=size(A),当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时数组的行数,第二个元素是数组的列数。
[r,c]=size(A),当有两个输出参数时,size函数将数组的行数返回到第一个输出变量,将数组的列数返回到第二个输出变量。
如果在size函数的输入参数中再添加一项,并用1或2为该项赋值,则size将返回数组的行数或列数。
其中r=size(A,1)该语句返回的时数组A的行数,c=size(A,2)该语句返回的时数组A的列数。
n=numel(A)该语句返回数组中元素的总数。
n=length(A):
如果A为非空数组,返回行数和列数两者之间数值较大的那一个值,即相当于执行了max(size(A));如果A为空数组,则返回0;如果A是一个向量则返回A的长度。
n=max(size(A):
若A为非空数组,返回A的最大维数;若A为空数组,返回A中最长的非0维数
%mod&rem
简单的说mod(a,b)就是求的是a除以b的余数。
比方说mod(100,3)=1,mod(17,6)=5
Examples:
>>mod(13,5)
ans=
3
>>mod([1:
5],3)
ans=
12012
>>mod(magic(3),3)
ans=
210
021
102
rem和mod的区别
如果你不仔细区分的话,可以把rem和mod都当作是求余数的命令。
比如,
>>mod(3,2)
ans=
1
>>rem(3,2)
ans=
1
可是,通过看他们的帮助文件可以知道,这两个数的符号一致时的结果是一样的,但是当两个数的符号不一样时,就会出现不同了。
>>mod(3,-2)
ans=
-1
>>rem(3,-2)
ans=
1
主要区别在rem(x,y)命令返回的是x-n.*y,如果y不等于0,其中的n=fix(x./y),而MOD(x,y)返回的是x-n.*y,当y不等于0时,n=floor(x./y)
因此他们之间的区别主要在与fix与floor的区别。
fix是想最近的整数取整,而floor是向负无穷取整。
%find用于查询非零元素的索引值indices(即行和列坐标)
ind=find(X) 查询非零元素的位置,如果X是一个行向量,则返回一个行向量;否则,返回一个列向量。
如果X全是零元素或者是空数组,则返回一个空数组。
[row,colV]=find(X,...) 查询满足一定条件的元素的行和列
X一般为逻辑表达式,如X>5等;也可以为find(X),得到非零元素的位置及非零元素。
其中row返回满足条件的元素行的位置
col返回满足条件的元素的列的位置
V 如果X是一个逻辑表达式,则返回一个逻辑数组;一般如果存在满足要求的元素,则返回一个单位列向量。
如果不存在满足要求的元素,则返回一个空向量。
norm&normest—>矩阵(向量)的范数运算
为了反映了矩阵(向量)某些特性,线性代数中引入了范数的概念,它分为2-范数,1-范数,无穷范数和Frobenius范数等.在MATLAB中,用函数norm()或normest()计算矩阵(向量)的范数.其使用格式如下.
norm(X)——计算矩阵(向量)X的2-范数;
norm(X,2)——同上;
norm(X,1)——计算矩阵(向量)X的1-范数;
norm(X,inf)——计算矩阵(向量)X的无穷范数;
norm(X,'fro')——计算矩阵(向量)X的Frobenius范数;
normest(X)——只计算矩阵(向量)X的2-范数;并且是2-范数的估计值,适用于计算norm(X)比较费时的情况.
>>X=hilb(4)
X=
1.00000.50000.33330.2500
0.50000.33330.25000.2000
0.33330.25000.20000.1667
0.25000.20000.16670.1429
>>norm(4)
ans=
4
>>norm(X)
ans=
1.5002
>>norm(X,2)
ans=
1.5002
>>norm(X,1)
ans=
2.0833
>>norm(X,inf)
ans=
2.0833
>>norm(X,'fro')
ans=
1.5097
>>normest(X)
ans=
1.5002
%varargin,varargout
Passorreturnvariablenumbersofarguments 传递或返回数量可变的变量(即参数和返回值个数可变,类似于实现了C++的函数重载,但比C++重载不同,它的返回值的个数可以是多个)
Syntax
functionvarargout=foo(n)
functiony=bar(varargin)
Description
functionvarargout=foo(n)returnsavariablenumberofargumentsfromfunctionfoo.m.
functiony=bar(varargin)acceptsavariablenumberofargumentsintofunctionbar.m.
ThevararginandvarargoutstatementsareusedonlyinsideafunctionM-filetocontaintheoptionalargumentstothefunction.Eachmustbedeclaredasthelastargumenttoafunction,collectingalltheinputsoroutputsfromthatpointonwards.Inthedeclaration,vararginandvarargoutmustbelowercase.
Examples
Thefunction
functionmyplot(x,varargin)
plot(x,varargin{:
})
collectsalltheinputsstartingwiththesecondinputintothevariablevarargin.myplotusesthecomma-separatedlistsyntaxvarargin{:
}topasstheoptionalparameterstoplot.Thecall
myplot(sin(0:
.1:
1),'color',[.5.7.3],'linestyle',':
')
resultsinvararginbeinga1-by-4cellarraycontainingthevalues'color',
[.5.7.3],'linestyle',and':
'.
Thefunction
function[s,varargout]=mysize(x)
nout=max(nargout,1)-1;
s=size(x);
fork=1:
nout,varargout(k)={s(k)};end
returnsthesizevectorand,optionally,individualsizes.So
[s,rows,cols]=mysize(rand(4,5));
returnss=[45],rows=4,cols=5.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 常用 基本 数学 函数 以及 三角函数