Matlab作业笔记¶
1.冒号法生成线性等距向量:记忆点是从小到大写¶
如:A=(1:2:17)
- matlab中各种括号:
- 小括号
()
,用于引用数组的元素 - 中括号
[]
,用于储存矩阵和向量 - 大括号
{}
,用于cell数组(元胞数组,相当于C语言的共用体)的分配或引用。
2.求解线性方程组¶
- 转置用撇号
'
即可 inv(A)
:求逆矩阵det(A)
:求行列式\
左除号表示将前一哥矩阵求逆后乘后面的,理论上有:A\B=inv(A)*B
- Tips:根据matlab的提示,
A\B
的精度将高于使用inv
函数 - 记忆:除号看作棍子
|
除号往哪边倒,就把谁打成逆矩阵
- Tips:根据matlab的提示,
3.绘制二维曲线图¶
- 坐标轴上下限
ylim([-2,2])
:这里需要注意的是,这一函数的输入参数是一个1*2矩阵,需要使用中括号[]
来创建
- 坐标轴名
xlable('x');ylable('sin x')
- 图名
title('二维点阵图')
命令设置图的名称title
- 图例
legend('sin(x)','cos(x)')
命令来添加图注,按照绘制先后顺序添加
- 添加网格
grid on;
- 注释
text(x,cos(s),'cos x')
- 调整曲线色彩、线型、数据点型
- 色彩:rgbcmykw
- 线型:
'-'
'--'
':'
'-.'
- 点型:如下
name | 说明 | 标记符 | 说明 | 颜色 | 说明 |
---|---|---|---|---|---|
- | 实线(默认) | + | 加号符 | r | 红色 |
-- | 双划线 | o | 空心圆 | g | 绿色 |
: | 虚线 | * | 星号 | b | 蓝色 |
-. | 点划线 | . | 实心圆 | c | 青绿色 |
x | 叉号符 | m | 洋红色 | ||
s | 正方形 | y | 黄色 | ||
d | 菱形 | k | 黑色 | ||
^ | 上三角形 | w | 白色 | ||
v | 下三角形 | ||||
> | 右三角形 | ||||
< | 左三角形 | ||||
p | 五角星 | ||||
h | 六边形 |
(1) 使用figure(n)
来打开多个窗口来绘制图:
1 2 3 4 | figure(1) plot…… figure(2) plot…… |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | clear;clc; x=[0:10:360]*2*pi/360; figure plot(x,sin(x),'r+-'); xlim([0,2*pi]); ylim([-2,2]); xlabel('x');ylabel('sin(x)') legend('sin(x)') grid on; figure plot(x,cos(x),'g*--'); xlim([0,2*pi]); ylim([-2,2]); xlabel('x');ylabel('cos(x)') legend('cos(x)') grid on; |
(2)subplot(2,2,1)
函数生成2*2的子图,并在第一个上绘制
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | clear;clc; x=[0:10:360]*2*pi/360; figure subplot(2,2,1); plot(x,sin(x),'r+-'); xlim([0,2*pi]); ylim([-2,2]); hold on xlabel('x');ylabel('sin(x)') legend('sin(x)') grid on; subplot(2,2,2); plot(x,cos(x),'g*--'); xlim([0,2*pi]); ylim([-2,2]); hold on xlabel('x');ylabel('cos(x)') legend('cos(x)') grid on; |
(3)一个窗口中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | clear;clc; x=[0:10:360]*2*pi/360; figure plot(x,sin(x),'r+-'); hold on plot(x,cos(x),'g*--'); hold on plot(x,tan(x),'bx:'); hold on plot(x,cot(x),'ms-.'); hold on xlim([0,2*pi]); ylim([-2,2]); xlabel('x');ylabel('y') title('二维曲线点图') legend('sin(x)','cos(x)','tan(x)','cot(x)') grid on |
4.绘制三维曲面¶
关键点 :
- 元素乘幂使用
.^
- 元素乘积使用
.*
- 参考
peaks(49)
函数的输出
- mesh(X,Y,Z,C)
- 绘制网格图
- surf(X,Y,Z)
- 绘制着色曲面图
- 使用
peaks(49)
函数就可以找到这个表达式,原来这是个demo用的表达式,稍微更改了,将x^2增加了系数0.5,改变了图像的一点性质
提示:
- 自然对数的底数e的几次方可以用
exp(‘expression’)
来表示,因为exp函数代表了e的几次方
矩阵奇异
表示此时矩阵的元素可能达到了无穷大(inf
无穷大)或0/0(NaN
非数)- 可以打开查看矩阵的元素情况
- 标量乘幂需要用
.^
来表示,因为^
表示矩阵乘幂.^
表示矩阵中单个元素乘幂- 这叫数组运算
-
绘图中的“元素之间”乘法使用
.*
*
表示矩阵乘法.*
表示矩阵元素对应相乘- 注:matlab中的latex函数并不能区分这两种符号
-
提示圆括号或方括号不对称,可能是因为乘号
*
没打出来 -
peaks函数输出: $$ 3\, {e}^{ - {\left(y + 1\right)}^2 - x^2}\, {\left(x - 1\right)}^2 - \frac{{e}^{ - {\left(x + 1\right)}^2 - y^2}}{3} + {e}^{ - x^2 - y^2}\, \left(10\, x^3 - 2\, x + 10\, y^5\right) $$
5.编写函数¶
- 在文件浏览器空白处
右键->新建->函数
可以创建一个空白的自定义函数 - 可以发现,它的后缀与脚本一样,都是
.m
,只是添加了函数头,便于编写 - 前面
方括号
里是返回的参数,后面圆括号
里输入参数,它们都不需要说明类型 - 进行运算编写即可,不需要像C一样使用
return
语句
1 2 3 4 5 | function [ output_args ] = Untitled( input_args ) %UNTITLED 此处显示有关此函数的摘要 % 此处显示详细说明 end |
- 设置缺省值,使得函数可以直接运行
1 2 3 | if nargin == 0 r=1;%设置半径缺省值 end |
REFERENCE 参考文献¶
APPENDIX 附录¶
All the coding in this document is Available on the Github.
TTECH SUPPORT 技术支持¶
Edit at 2020 March 05