第二讲 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:b或t=[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小时内删除。
发表评论