机器学习 Octave / Matlab 基础 - hhh_ml

机器学习 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值