第二讲 Matlab基础知识
1.标识符
把标志变量、常量或文件名的特定字符称为标识符,Matlab规定必须是英文字母、阿拉伯数字和下划线等符号组成的字符串,第一个符号必须是英文字母。
2.Matlab中的数据及变量类型
有三种类型的基本数据:
(1)数值型数据,简称数值(Double Array):一般输入的数字均为数值数据,包含实数、复数。
(2)字符串型数据,简称字符量(Char Array):用英文格式单引号加以界定的数字、字符、各种符号、表达式、方程式和汉字等。
(3)符号型数据,简称符号量(Sym Object):用sym和syms可以把字符、表达式、方程、矩阵等定义成数学符号,称为符号型数据,运算结果为数学表达式。
在命令窗口中键入class(a),回车可知已有变量a是哪一种类型的数据。
3.变量名及赋值
(略)
2.1 数值矩阵
2.1.1 永久性数值变量名
除了i、j、pi、eps(浮点运算相对精度10-52)、Inf、NaN外还有,realmin(最小正浮点数2-1022)、realmax(最大正浮点数21023)。
2.1.2 数值矩阵的创建
1.直接输入法
>>a=[1 6 1;4 6 2;9 3 8];
>> b=[2-3i,3+5i,2i;3,9i,6;5-i,7i,4];
2.创建特殊数值矩阵的命令输入法
命令格式
功能
命令格式
功能
zeros(n)
输出n阶全零方阵
rand(n)
输出n阶均匀分布的随机方阵
zeros(m,n)
输出m×n全零矩阵
rand(m,n)
输出m×n阶均匀分布的随机矩阵
ones(n)
输出n阶全1方阵
randn(n)
输出n阶正态分布的随机方阵
ones(m,n)
输出m×n全1矩阵
randn(m,n)
输出m×n阶正态分布的随机矩阵
eye(n)
输出n阶单位方阵,n=1时可省略
magic(n)
输出n阶魔方阵(各行各列及主对角线元素和均为
diag(a,k)
输出矩阵a主对角线右移k列时其元素构成的列向量。k=0时可省略
tril(a)
truilu(a)
输出矩阵a的主对角线下(上)方元素构成的下(上)三角矩阵。
3.变换矩阵结构的命令
flipud(a)——输出矩阵a上下翻转后的矩阵;
fliplr(a)——输出矩阵a左右翻转后的矩阵;
rot90(a,k)——输出矩阵a沿逆时针旋转k个90度后的矩阵,k为正负整数;
rot90(a)——输出矩阵a逆时针旋转90度后的矩阵;
reshape(A,m,n)——输出一个m×n=k阶矩阵,它是由矩阵a的k个元素重新排列构成的矩阵,重排前后元素在矩阵中的符号不变。
4.一批特殊向量(行矩阵)的创建
(1)等差数列型向量的创建
增量输入法:t=a:h:bt=[a:h:b]>> t=(a:h:b),a、b为起始值,h为公差,可正,可负,省略时为1.
例如>> t=0:0.1:2*pi
线性等分命令
t=linspace(a,b,n),a、b为起始值,n为(b-a)的等分点个数。
例x=linspace(2,2*pi,6)
(2)等比数列型向量的创建
调用格式为:q=logspace(log10(a),log10(b),n)或q=logspace(as,bf,n),a、b分别为等比数列的初值和终值,n为等比数列划分时的节点数。
>> q=logspace(0,1,6)
2.1.3 数值矩阵的矩阵算法
矩阵算法——按照(线性代数)矩阵理论来运算。
数组算法——把矩阵视为由其元素构成的数据(数组),运算时在参与运算的矩阵的元素
之间进行的数与数的运算,如通常的“.*”运算。便于对大批数据的处理。
1.数值矩阵维数的查验和矩阵的转置
查验矩阵维数命令:size(a)或 size(a,r), r取1输出矩阵的行数;取2输出矩阵的列数。
例 b=[3 7 0 1;7 9 1 5]; size(b)
转置为:>> c=b'
2.矩阵算法中的矩阵加、减和乘法运算
普通的矩阵算法。注意:,a为矩阵,n为整数。当n>0时,表示n个a相乘;当n<0时,表示n个a相乘的逆。矩阵a与常数d的和定义为a+d=a+d*ones(size(a))。
3.数值矩阵的求逆及矩阵算法中的除法
(1)求逆命令
矩阵a、b满足ab=ba=e(单位矩阵),格式b=inv(a)
(2)求矩阵的伪逆矩阵
对矩阵b(可以是奇异或长方),同时满足xbx=b和bxb=x的矩阵x称为b的伪逆矩阵,格式x=pinv(b)
(3)左除
解矩阵方程ax=b可得x=a-1b,格式x=inv(a)*b或x=a\b或mldivide(a,b)
(4)右除
解矩阵方程xa=b可得x=ba-1,格式x=b*inv(a)或x=b/a或mrdivide(b,a)
4.矩阵函数
设a为方阵。
expm(z)——
logma(a)——
sqrtm(a)——矩阵a的平方根
funm(a,@f)——矩阵a的任意函数f(a)
2.1.4 数值矩阵的数组算法
1.查验向量维数命令
length(a),a为向量输出维数;a为列阵(行阵)时,输出列(行)数;a为长方形矩阵时,输出行和列数。
2.数值矩阵间数组算法的四则运算
a.*b——a与b的对应元素相乘
a.^n——a中每个元素的n次方
a./s,s.\a——a中各元素被s除
a./b,b.\a——a中各元素除以b中对应元素
s./a,a.\s——s被a中各元素除。
3.数组算法中的基本初等函数运算
函数命令
数学意义
函数命令
数学意义
函数命令
数学意义
sin(x)
sin x
round
四舍五入
angle(x)
x的幅角
asin(x)
arcsinx
fix
输出靠零的整数
pow2(x)
2x
cos(x)
cos x
floor
输出靠向的整数
max(x)
各列元素中最大值
sec(x)
sec x
ceil
输出靠向的整数
mean(x)
各列元素之平均值
tan(x)
tan x
atan(x)
arctan x
sum(x)
各列元素之和
cot(x)
cot x
exp(x)
ex
rem(x1,x2)
或mod(x1,x2)
矩阵x1除以x2元素的余数
sinh(x)
双曲正弦
log(x)
ln x
cosh(x)
双曲余弦
log2(x)
long2 x
median(x)
各列元素的中间值
real(x)
x的实部
log10(x)
lg x
prod(m:n)
m(m+1)…(n-1),m<1
imga(x)
x的虚部
sqrt(x)
pactorial(x)
x!,x为非负整数矩阵,这时输出个元素阶乘
sign(x)
符号函数
abs(x)
x的绝对值
5.向量的点积和叉积
点积:dot(a,b)    叉积:cross(a,b)
2.2 字符串和符号矩阵
2.2.1 字符串变量和函数求值
字符串在数据处理、造表和函数求值运算中非常有用。
用单引号界定的排成的各种符号,包括数字、英文、汉字、横线、括号及表达式、方程式等。例如>> a='I am a sutdent'
字符串的输出显示命令disp(zs),输入参数zs可以是数值变量、字符串变量和被界定的字符串,但每一次只能有一个内容,各变量之间用空格分开。空格也可以用字符命令blanks(n)控制。
>> a='sint';b='exp(t)';c='lnt';t=[0.1:0.2:pi/4]';
d='    t          sint      exp(t)        lnt      ';
disp(d),disp([t    sin(t)    exp(t)  log(t)])
格式化数据显示命令
为了使输出的数据按规定格式(表示方式、小数点位数等)显示,常用命令>> sprintf('Z',S1,S2)
输入参数的第一部分‘Z’由两部分组成(这两部分可以交错混合排列);
控制的第二部分数据显示S1、S2显示形式的“格式”,格式符及其意义如下表,两个格式符空格的大小就是数据显示时的间距。
格式
显示格式
格式符
显示格式
%e
指数格式
%g
自动选择指数
%f
小数格式
%m.nf
数据共占m个字符宽度,显示n位小数
%d
十进制整数格式
\n
换行符
【例2-17】分两行输出自然数e,ln 5和最小浮点数eps的符号(即表头)和数值。
>> a=[exp(1)  log(5)  eps];
>> b=sprintf('              e              ln5              eps\n        %9.3f;      %f;      %e;',a)
2 自定义函数求值
可以用数值或符号变量表达式、内联函数命令、自己编写的M-函数文件等多种方法自定义函数、然后进行函数的求值运算。
(1)用数值变量表达式自定义函数。
四则运算中必须用数组符号算法符号,否则称为矩阵函数;表达式使用时“一次性”的,再使用需要重新输入;输入表达式前必须先给数值变量赋值。
(2)用字符变量表达式定义函数
把函数表达式定义成字符串表达式(自定义函数),给字符串赋值以后,通过数值转换命
令eval将字符串转换为数值,从而得出函数值。表达式两端必须加单引号界定,使之被定义为字符串表达式。
(3)用内联函数命令自定义函数
内联函数命令为fun1_1=inline(字符串表达式)
【例2-48】已知,用三种方法求
数值变量法:>> A=[3 2*pi 9;6 5 3*pi]; f1=A.^3+sin(A).^2+exp(-A)
字符变量函数法:>> fx1='A.^3+sin(A).^2+exp(-A)';
>> A=[3 2*pi 9;6 5 3*pi];;fx1_A=eval(fx1)
内联函数法:>> fx2=inline('A.^3+sin(A).^2+exp(-A)');
>> A=[3 2*pi 9;6 5 3*pi];;fx2(A)
   
2.2.2 符号变量
(略)
2.2.3 符号矩阵的创建方法
>> Y=sym('[a 5*b+1;c-sin(a) b+3]')
2.2.4 符号矩阵的运算
    符号矩阵的加法、乘法、点乘法:
>> X=sym('[a/b,sin(a);b^4,8]');Y=sym('[3/a,cos(b);b^3,3]');
>> X+Y,X*Y,X.*Y
符号矩阵的求逆运算:
    >> inv(X)
对矩阵各元素进行因式分解:
matlab学好了有什么用>> A=sym('[x/(x^2-5*x-6),2*x/(x^2-2*x+1)]');
>> factor(A)
将符号矩阵的各元素展开:
>> A=sym('[cos(x-y),sin(x+y);exp(x-y),(x-1)^3]');

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。