数值数据
三个点在结尾表示连着下一行继续写
整型
uint8函数转换为无符号8位整数,int8函数转换为带符号8位整数
class()函数
获取数据类型
single()函数与double()函数
复数
直接6+8i,跟平常写数学一样
默认双精度
format输出格式
默认为short
矩阵
名字可以为其他,不一定就是a
exp()
e的x次方,填入的数是x
三角函数sin()和sind()
以角度为单位sin后面加个d即可
求绝对值,复数的模,字符串的ascii码abs()
round()四舍五入
ceil()向上取整,取大于等于该数的第一个整数
floor()向下取整,取小于等于该数的第一个整数
fix()舍小数取整
取余rem(,)
isprime()判断素数函数x数组输出下标对应内容x(),从1起
加分号就是不显示计算结果
sqrt()开根号
pi是圆周率
单引号连接与双引号间隔
矩阵
矩阵建立
分号结束当前行
矩阵合并
复数矩阵的建立
本质是矩阵的加法
linspace()函数实现冒号表达式
冒号表达式
矩阵也可以用
下面这个自动生成 相邻数据跨度相同 的行向量
下面是结构体,注意是大括号就得了
矩阵元素的引用
序号是一列一列来的,完成一列就到右边一列,从上面开始顺下来
第1行第1列是第一个,第2行第1列是第二个,然后换行
…
把一个3行3列的矩阵中,序号为1,3,5的元素的下标搞出来
分别是1,1
3,1
2,2
find()函数查找特定下标
利用冒号表达式获得子矩阵
利用行向量或者列向量和冒号表达式获取子矩阵
二者运行方式一样,
end运算符表示某一维的末尾元素下标
取第一行和第四行的第三列到最后一列
利用空矩阵删除矩阵的元素
改变矩阵的形状
a(:)堆叠每一列元素成为一个列向量
eye()函数创建单位矩阵
ones()函数创建全1阵zeros创建全零阵
repmat()函数反复使用矩阵
B = repmat(A,m,n)
不断复制A矩阵,B矩阵大小
行为m个A
列为n个A
可以把A看成一个单位
B大小是m*n个A
例子:
A =
1 2 3
4 5 6
B = repmat(A,2,3)
B =
1 2 3 1 2 3 1 2 3
4 5 6 4 5 6 4 5 6
1 2 3 1 2 3 1 2 3
4 5 6 4 5 6 4 5 6
基本运算
算术运算
左除\右除/
非奇异矩阵即存在 逆矩阵
反之无
左除1\4==4
右除1/4=0.25
乘方运算
.^2即矩阵内全部元素变成平方之后的大小,
^适用于方阵和标量
点运算
.*点乘 和 * 乘
乘 * 用的是是矩阵乘法
点乘 . * 用的是对应元素相乘,1*(-1),2*0…
注意这里,x是矩阵,sinx和cosx就还是矩阵,下面这样表示矩阵相乘
关系运算
类似bool
矩阵比较
逻辑运算
与或非
非9==0
水仙花数
字符串
eval()执行字符串内容
特殊矩阵
rand()函数产生随机矩阵
魔方矩阵
##范德蒙矩阵
希尔伯特矩阵
伴随矩阵
帕斯卡矩阵
矩阵变换
对角阵
三角阵
上三角矩阵
下三角矩阵
矩阵的转置
什么叫矩阵转置
例如,第2行第4列的转置后变成第4行第2列
实部不变,虚部反号即 a+ib 与 a-ib 为复共轭关系
这2个符号不会改变原矩阵
矩阵的翻转
左右翻转:第一列与最后一列交换,第二列与倒数第二列交换
左右翻转:第一行与最后一行交换,第二行与倒数第二行交换
以此类推
矩阵的求逆
矩阵求值
方阵的行列式
矩阵的秩
矩阵的迹
矩阵特征值
矩阵的存储方式
完全存储方式
稀疏存储方式
顺序结构
数据的输入
选择结构
循环结构
for
while
函数递归
匿名函数
注意@(n)表示自变量为n
交互式绘图(好用!!)
在变量栏按住ctrl键选择多个变量,先选的为自变量,在左上角的绘图选项会有已经画好的各种图,
绘图
二维曲线
plot函数
第一个坐标连接第二个,第二个连接第三个以此类推
fplot函数
有时候我们自己定义的步长不够精确,很容易有误差,fplot就是自动根据震荡幅度帮我们搞步长
参数方程
图形标注
title()函数为图形添加标
xlabel函数和ylabel函数
text()函数和gtext()函数
text函数先写标记点的坐标,然后写标记的内容
gtext函数写完标记内容直接会让你在图形上面选择标记内容的放置位置
legend()函数区分图形
就是右上角这个小框框
axis函数控制坐标属性
二维图形可以省略后面两个输入
axis equal即x轴y轴的单位刻度一样长,因为默认情况下y轴与x轴一样长,如果x的刻度多了,x的单位刻度会变小
下面这个off就是把上边和右边去掉
hold控制图形
hold on在原有图形基础上新增
hold off就是刷新原窗口
subplot()分割图形窗口
其他坐标系下的二维曲线
心形曲线
统计图
条形图bar()
直方图hist()
y轴是出现的次数
下面这个x意思是在-3到3每隔0.2为一个区间
默认统计20个区间,theta要用弧度为单位,因此后面我们乘以pi
扇形图pie()
pie从圆形正上方逆时针按向量score顺序绘画扇形
ex向量控制扇形,1就突出来,0是正常的,如图中黄色扇形突出来了
legend最后两个属性搭配使用,控制那个提示表的摆放位置,例子中的east当然就是靠右边了
散点图scatter()
filled是实心填充标记点,不写默认为空心
矢量图quiver()
三维曲线
两种方式
三维曲面
meshgrid()函数生成平面网格数据
简单说就是在三维空间中展示多个二维的线,Y矩阵的每一行存放对应的一条线,也就是后面那张图我们看到五条线依次排列
surf()函数和mesh()函数绘制三维曲面
cylinder()函数和sphere()函数
两个自变量的曲面的参数方程fsurf()和fmesh
数据统计分析
求矩阵的最大max()最小min()元素
下面这个A(:)可以理解为把所有元素排成列向量
求矩阵的平均值mean()和中值(中位数)median()
累加和sum() 与 累乘积prod()
补充
下面这个得到的是向量
标准差与相关系数std()和corrcoef()
列与列比较
排序sort()
多项式运算
四则运算conv()乘法,deconv()除法
求导polyder()
除法得到的是商,而余项省略了,真正的结果是商加余项的导数
求值polyval()
简单来说,polyvalm填入方阵,且方阵整体作为自变量带入到多项式中进行矩阵的四则运算,而polyval是点乘点除,
求根roots()
数据插值
一维插值interp1()
二维插值interp2()
X是行向量,Y是列向量,Z可以理解为函数值已知的样本点
例题:沙盘制作问题
首先是未插值的样子,很差劲
z1是插值了,但是间距比较大,结果还算可以
z2就是更进一步插值了,把步长减少为50,效果不错!
曲线拟合
例题:股票预测问题
加上三天,看看预测结果
然后再加上这三天的真正大小,可以看出有时候只使用拟合没太大意义
例题:算法的参数优化问题
实现方法不同:
插值要求逼近函数样本点,而拟合只要求总体误差最小
结果形式不同:
插值分段进行逼近,无统一的逼近函数(贪心),而拟合整体逼近,有确定的逼近函数
侧重点不同:
插值一般用于样本区间内的计算,拟合不仅是区间内,还可以预测后面的发展趋势,从统计数据中总结一般性经验
应用场合不同:
样本为精确数据则使用插值,统计数据(人口)或存在误差的数据就拟合