MATLAB复习

MATLAB常用的标点符号

空格

变量分隔符

矩阵一行中各元素间的分隔符
程序语句关键词分隔符

逗号分隔显示计算结果的各语句
变量分隔符
矩阵中一行各元素的分隔符
点号.数值中的小数点
结构数组的域访问符
分号分隔不想显示计算结果的各语句
矩阵行与行的分隔符
冒号

用于生成一维数值数组

表示一维数组的全部元素或多维数组某一维的全部元素

百分号%

注释语句说明符,凡在其后的字符均视为注释性内容而不被执行

单引号' '字符串标识符
圆括号()

用于矩阵元素引用

用于函数输入变量列表

确定运算的先后次序

方括号[ ]

向量和矩阵标识符

用于函数输出列表

花括号{}标识细胞数组
续行符...长命令行需分行时连接下行用
赋值号=表达式赋值给一个变量6

逗号
显示计算结果的指令与其后指令的分隔
用作输入量与输入量的分隔符
用作数组元素分隔符号

命令行窗口清屏 clc    清除指令窗中显示的内容

清除MATLAB工作空间的所有变量clear

清除图形窗clf

whos

变量命名规则

(1)变量名称和函数名称有大小写之分

(2)变量名称的第一个字符必须是英文字符

        5xf、_mat等都是不合法的变量名称

(3)变量名称中不可以包含空格或者标点符号,但是可以包含下划线

        xf_mat是合法的

MATLAB文件存取的命令

save Filename

load Filename

MATLAB中的预定义变量

ans计算结果的默认名称
eps计算机的零阈值
Inf(inf)A无穷大
pi圆周率
NaN(nan)

表示结果或者变量不是数值  

0/0  0*∞   ∞/∞ 

MATLAB中的取整函数

round(a)向最接近的整数取整,小数 部分是0.5时向绝对值大的方向取整
fix(a)向0方向取整
floor(a)向不大于a的最接近整数取整
ceil(a)向不小于a的最接近整数取整

复数相关运算函数

real(z)返回复数z的实部
imag(z)虚部
abs(z)幅度
angle(z)幅角
conj(z)共轭复数
complex(a,b)以a为实部、b为虚部创建复数

A=[2,3,4,5,6]

A=1:2:10           %1 3 5 7 9

A=linspace(1,30,5)

%1.0000       8.2500       15.5000        22.7500        30.0000

向量的点积运算:对应位置上的元素相乘然后再相加

dot(A)  

叉积运算:A、B的叉积C,C的方向垂直于A与B所确定的平面

cross(A)

矩阵元素的下标表示法

(1)全下标A(i,j)

(2)单下标A(s)                             s=(j-1)*m+i

A(2,3)               A(6)

A(1:2,3)            矩阵A第1、2行第3列的元素值

A(6,8)               矩阵A单下标第6-8号元素的值

A(:)=1:9      

A=

        1 4 7

        2 5 8

        3 6 9

A(2,:)=[ ]           %删除第二行

矩阵的创建

  • 直接输入法
  • 抽取法

   A=[1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16]

   A=

        1   2   3   4

        5  6   7   8

        9 10 11 12

        13 14 15 16

(1)全下标      

   B=A(1:3,2:3)     %取矩阵A行数为1~3、列数为2~3的元素构成子矩阵B

  B=

        2 3

        6 7

      10  11

 C=A([1,3],[2,4])   %取矩阵A行数为1、3,列数为2、4的元素构成子矩阵C

 C=

        2 4

      10  12

D=A(4,:)     %取矩阵A的第4行、所有列

D=

        13 14 15 16

(2)单下标

B=A([4:6;3 5 7;12:14])

B=

        13  2    6

        9    2   10

       15    4    8

  • 拼接法

F=[A;C]

  • 函数法

矩阵生成函数

zeros(m,n)

生成m*n阶的全0矩阵

ones(m,n)全1矩阵
rand(m,n)生成取值在0~1之间满足均匀分布的随机矩阵
randn(m,n)生成满足正态分布的随机矩阵
eye(m,n)生成m*n阶的单位矩阵

矩阵的代数运算

行列式det(A)

逆矩阵 inv(A)

求矩阵的秩rank(A)

求矩阵的迹trace(A)

求矩阵的特征值和特征向量 [X,Lamda]=eig(A)

转置B=A'

乘幂A^3    开方sqrtm(A)    指数expm(A)    对数logm(A)

triu(A)

提取矩阵A的右上三角元素,其余补0

tril(A)提取矩阵A的左下三角元素,其余补0
diag(A)提取矩阵A的对角线元素

数组的创建

创建空数组A=[ ]

创建一维数组

A=1:4

B=linspace(1,2,4)

B=

        1.0000            1.3333             1.6667            2.0000

创建二维数组

A=[1 2 3;2 5 6;1 4 5]

B=[ [1:3]; [linspace(2,3,3)]; [3 5 6] ]

C=[ 1:5 ;linspace(3,10,5); a 5 2 6 4]

胞元数组 A(2,3) 第2行第3列元素    A{2,3}  所存的内容

数组大小

d=size(A)                   d=[m,n]

[a,b]=size(A)

length(A)

数组的维度

ndims(A)

zeros(m,n)

创建一个m行n列的全0数组

zeros(m)  创建一个m行m列的全0数组

ones(m,n)全1数组
eye单位数组,对角线元素为1,其他元素为0
diag(v)对角线元素依次对应于向量v的元素
rand(m,n)m行n列的随机数组,其元素服从0到1的均匀分布
magic(n)n行n列的魔方数组

数组的表示

逻辑索引 B=A>0.8

双下标索引 A(3,1)

单下标索引 A(3)

转换sub2ind/ind2sub

IND=sub2ind(size(A),I,J)

[I,J]=ind2sub(size(A),IND)

数组尺寸调整 reshape(A,2,6)

A=[1,2;3,4];

B=[-1,-2;2,1];

S=3;

A.*B= -1 4

           6 4

A*B= 3 0

          5 -2

S.*A= 3 6

          9 12

S*B= -3 -6

          6   3

数值计算

norm(A)                        计算向量和矩阵2阶范数

norm(A,p)                     计算向量或矩阵的p阶范数

 求解线性方程组

矩阵相除法Amn

AX=B     X=A\B

m=n且A可逆-----唯一解

n>m-----------最小二乘解

n<m----------最小范数解

消去法

增广矩阵 [A B]

rref() 初等行变换

迭代法

多项式

A=[1,2,3,4,5]

ploy2sym(A)    %显示多项式

x=[-1,2;-2,1]

y=ploycalm(p,x)

根roots(p)

导数ployer(p)

乘法卷积conv(p1,p2)

反卷积 [div,rest]=deconv(a,b)

零点 [x,fval,exitflag,output]=fzero(fun,x0,options)

数值积分

q=quad(fun,a,b,tol,trace)

q=quadl(fun,a,b,tol,trace)

q=dbquad(fun,xmin,ymin,ymax,tol,method)

数值计算和符号计算的区别和联系

  1. 数值计算:
    • 当需要快速进行大量数值运算时,如矩阵运算、数值积分等,应使用数值计算。
    • 当对计算精度要求不高,或者可以接受一定误差时,也应使用数值计算。
  2. 符号计算:
    • 当需要进行代数运算、微分、积分、方程求解等时,应使用符号计算。
    • 当需要得到精确结果,或者需要进行符号推导时,也应使用符号计算。

两者的根本区别是 : 数值计算的表达式、矩阵变量中不允许有未定义的自由变量 , 而符号计算可以含有未定义的符号变量。

符号计算

符号对象 sym  syms

确定方程中的自变量 symvar()

符号变量代换 subs(S,old,new)

将符号对象转换为数值对象的函数    double()   digits()  vpa()   eval()

c1=sym(sqrt(2)*log(7));

ans1=double(c1)

ans1=

        2.7519

符号表达式因式分解 factor()

符号表达式展开expand()

同类项合并函数collect()

化简函数simplify()

通分函数numden()

求极限limit(F,x,a)       limit(F,x,a

,'left')左极限

微分 diff(f,n)

积分 int(S,v,a,b)

xor(x,y)   异或

函数

全局变量 global  a

局部变量 每个函数在运行时会占用独自的内存

1). 作用域不同:全局变量的作用域为整个程序,而局部变量的作用域为当前函数或循环等
2). 内存存储方式不同:全局变量存储在全局数据区中,局部变量存储在栈区
3). 生命期不同:全局变量的生命期和主程序一样,随程序的销毁而销毁,局部变量在函数内部或循环内部,随函数的退出或循环退出就不存在了
4). 使用方式不同:全局变量在声明后程序的各个部分都可以用到,但是局部变量只能在局部使用。函数内部会优先使用局部变量再使用全局变量

switch   case 分支 

某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示)

price<200                没有折扣

200      500              3%折扣

500      1000            5%折扣

1000     2500            8%折扣

2500     5000           10%折扣

5000<=price             14%折扣

输入所售商品的价格,求其实际销售价格

price=input("请输入商品价格");
switch fix(price/100)
case {0,1}
    rate=0;
case {2,3,4}
    rate=3/100;
case num2cell(5:9)
    rate=5/100;
case num2cell(25:49)
    rate=10/100;
otherwise
    rate=14/100;
end
price=price*(1-rate)

input

disp

二维曲线

plot

plot(x,y1,'option',x,y2,'option',...)        缺省:颜色--蓝     折线

w白色y黄色-实线v*型号
m洋红色r红色--虚线^Δ圆圈
g绿色k黑色点线x叉号square
b蓝色c青色-.点画线+加号diamond

为了使两个plot的图形在同一个坐标显示,可以用hold on命令进行图形保持

可以使用grid on命令为图形添加网格

xlable

ylable

legend 图例

text  在某点上加上文字

1.在同一图上分别用红色实线和绿色虚线绘制y1=sin(x)和y2=cos(x)在区间[0,4*pi]的曲线,并用星号*标出两条曲线的交点以及建立图例

x=0:pi/200:4*pi;
y1=sin(x)
y2=cos(x)
zz=x(find(abs(y1-y2)<0.005))
z=min(zz)
plot(x,y1,'r-',x,y2,'g-.')
hold on
plot(zz,sin(zz),'*')
legend('sin','cos')

2.同一图形窗的不同子图

t=(0:pi/100:pi)';
y1=sin(t)*[1,-1];
y2=sin(t).*sin(9*t);
t3=pi*(0:9)/9;
y3=sin(t3).*sin(9*t3);
subplot(1,2,1)
plot(t,y1,'r:',t,y2,'b',t3,y3,'b。')
subplot(1,2,2)
plot(t,y2,'b')
axis([0,pi,-1,1])

bar(x,y)条形图
polar(θ,r)极坐标图
stairs(x,y)阶梯图
line([x1,y1],[x2,y2],...)折线图
fill(x,y,'b')实心图
scatter(x,y,s,c)散点图
pie(x)饼图

axis on/off显示/取消坐标轴
xlabel('option')x轴加备注
ylabel('option')y轴加备注
title('option')图形加标题
legend('option')图形加备注
grid on/off显示/取消网格线
box on/off给坐标加/不加边框线

axis(xmin xmax ymin ymax)

text(x,y,'string','option')

子图

subplot(m,n,p)

三维曲面

surf(z,y,z)

surfc()    在曲线下面绘制等高线

peak镂空

sphere  三维球面

surf()   mesh()

  • 24
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值