机器学习 Octave / Matlab 基础
不懂就help!!!!
cd ‘path’ + pwd切换mb的路径
添加路径:addpath(‘path’) 向matlab中添加搜索路径
在matlab中默认都为列向量即 1 代表列向量
who 查询当前的所有变量 / whos 显示详细变量属性
clear 清空变量
disp()显示
有无分号表示是否显示结果
hist用于显示直方图
load + name加载文件 / load(‘_file_path’)
save + 保存文件名 + 变量 + -ascii; (防止乱码)
save new_file.txt v -ascii;
用冒号‘:’ 代替所有元素
C = [C , [1 ; 2 ; 3]]向C中添加一列向量
C(:) 将C中所有的元素放入一个列向量中
C = [A B] 将A矩阵排在B矩阵的左边构成的新矩阵返回给C矩阵
C = [A ; B] 将A矩阵放在B矩阵的上面构成的新矩阵返回给C矩阵
A * B A和B进行矩阵间的乘法
A .* B A 和B间的所有对应元素进行相乘
A .^ 2 A矩阵的各个元素进行乘方运算
log(v) 对向量v中的元素取对数运算
exp(v) 对向量v中的元素按照以e为底进行运算
abs(v) 对向量v中的元素进行取绝对值运算
v + num 对向量v中的每个元素进行加num运算
v < num 对向量v中的每个元素进行判断若符合则返回1否则返回0
find( condition ) 返回满足condition的元素的在矩阵中的位置一般需要用矩阵进行接收:
ex:
A =
0.1000 0.2000
0.3000 0.4000
0.5000 0.6000
[r,c] = find(A >= 0.3)
r =
2
3
2
3
c =
1
1
2
2
magic(num) 生成n阶的矩阵使得矩阵的各行各列各对角线加起来等于一个相同的数
sum(v,1) 获得每一列的最大值
sum(v,2) 获得每一行的最大值
sum(v) 求矩阵中各列向量的和,返回为1 * column 规模的和向量
prod(v) 求矩阵中的各列向量的乘积, 返回为1 * column 规模的积向量(参数与sum函数大致相同)
ps:
求对角线元素之和:
eye(n) 获得对应规模的单位矩阵
v = v .* eye(n) 构造对角线矩阵
sum(sum(v))获得对角线元素之和
rand(num) 返回一个num阶的随机矩阵,元素的值在[0,1]区间内
rand(m,n) 返回一个m * n阶的矩阵,元素的值在[0,1]区间内
max(rand(num) , rand(num)) 返回一个num阶的矩阵为两个随机矩阵的较大元素构成的矩阵
max(v) 默认获得列向量的最大值
max(max(v)) 通过对一个矩阵的两次取最大值获得矩阵元素中的最大值
max(v,[],1) 获得每一列向量的最大值 == max(v)
max(v,[],2) 获得每一行向量的最大值
eye(num/m,n) 获得相应规模的单位矩阵
ones(num / m,n) 获得相应规模的全1 矩阵
zeros(num / m,n) 获得相应规模的全0 矩阵
pinv(v) 获得v矩阵的逆矩阵
plot(x,y) 绘制以x为自变量以y为因变量的函数图像
plot(x,y, ’corlor’) 绘制以x为自变量以y为因变量的color颜色的图像
ps:使用hold on 语句使得在原来plot的图像上绘制新的图像
xlabel(‘name’) 为x坐标轴绘制标签
ylabel(‘name’) 为y坐标轴绘制标签
title(‘name’) 函数图像的名字
lengend(‘’’...’) 为函数图像的不同曲线命名
print -dpng + ‘name.png’ 将绘制的图像进行保存
close 关闭图像绘制窗口
通过firgure单独绘制图像:
figure(1):plot(x,y1) 绘制y1图像
figure(2):plot(x,y2) 绘制y2图像(同时)
subplot(m,n,num) 将图像分割成m * n个子块并显示第num个子块
axis([xmin xmax ymin ymax]) 对坐标轴进行区间划分
clf 清除一副图像但保留画板
循环分支语句:
for i = 1 : 5;
do~;
end;结束标志
while i <= 5;
do~;
end;结束标志
if a == b ,
break;
else do~;
elseif ~~
end;结束标志
自定义函数:
通过matlab的新建实时函数进行重构函数:
function 函数变量
ex:
function J = CostFunctionJ(X,y,theta)
m = size(X,1);
predictions = X * theta;
examples
sqrErrors = (prdictions - y) .^2;
J = 1 / (2 * m) * sum(sqrErrors);
最后返回的为j值