吴恩达机器学习笔记第四天
5.1基本操作
由于原视频使用的是Octave,然后我自己有现成的matlab能用,根据实践发现两者操作是共通的。
基本操作
基本数学操作(加减乘除),不等于号是~=,逻辑运算。
用分号可以阻止输出。还有用经典的C语言注意是sprintf控制输出格式。
format long\short 输出默认的长\短位。
矩阵
A = [1 2;3 4;5 6]可以生成如下的矩阵
$$
\begin{bmatrix}
1&2\\\
3&4\\\
5&6
\end{bmatrix}
$$
v = [1 2 3]生成行向量 [1; 2; 3]生成列向量
v = 1:0.1:2 生成一个行向量,范围[1, 2], 间隔为0.1
当然 [1 2 3] 也可以用类如 1:6 来代替(默认间隔为1)
ones(x, y) 生成x行y列,元素为1的矩阵
zeros(x, y) 生成x行y列,元素为0的矩阵
rand(x, y) 生成x行y列,元素为(0,1)随机数的矩阵
randn(x, y) 生成x行y列,元素为满足高斯分布的随机数的矩阵
eye(x) 画出x行x列的单位矩阵
hist(x) 画出x的分布直方图
5.2移动数据
size(A) 返回矩阵A的大小
size(A, 1) 返回第一维度的大小(即行数)
size(A, 2) 返回第二维度的大小(即列数)
length(v) 返回向量v的大小
length(A) 返回矩阵A的行数
load xxx 表示读取xxx文件
save xxx y 表示把数据y存入xxx文件中
在后面加入 -ascii 可以让它用二进制的方式储存
A(3,2) 表示第三行第二列的元素
A(2,:) :表示取该维度所有值,这表示取了第二行的所有值
A([1 3], :) 表示去了第1、3行的所有值
A = [A, [100; 101; 102]] 在A的右边添加一列
A(:) 标A的所有值放入一个列向量
5.3计算数据
AB表示矩阵相乘, A.B表示矩阵内的元素相乘
两个区别是,矩阵相乘要第一个矩阵的列数等于第二个矩阵的行数
而元素相乘要保证矩阵大小相同
A’: 求矩阵A的转置
max(A): 返回A每一行内最大的数和index索引
a < 3: 类似这种的条件语句,返回一个bool矩阵返回每个元素<3的结果
find(a < 3): 和上面相同,一个是返回boo值,一个是返回元素值
magic(A): 幻方,返回行列斜线的和相同的矩阵