参考:吴恩达《机器学习》

基本操作

  Octave主要用于数值计算,语法与matlab语法十分相似,所以学过matlab对Octave的语法很好理解。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

整数的加减乘除幂运算:+ - * / ^

恒等于符号==,不等于符号 ~=

逻辑与&& 逻辑或|| 异或xorxor(1,0)

赋值:a=3 整型 ;b='hi' 字符串 ;c=3>=1 bool型

显示数值的等价表示:a=pi disp(a) disp(sprintf('2 decimals: %0.2f' , a))

设置Octave浮点数保留长度:format long format short

向量一般用小写字母表示 v = [1;2;3] v=[1 2 3]' (转置)

矩阵一般用大写字母表示:`A=[1 2 ; 3 4 ; 5 6]

v=1:0.1:2 :从1到2的行向量,步长为0.1,无步长则默认步长为1

全为1的矩阵 C=2*ones(2,3) :C=[2 2 2 ; 2 2 2] (数字和矩阵相乘表示数字和每一个元素相乘)

全为0的矩阵 W=zeros(1,3)

随机向量 w=rand(1,3) (0-1之间的随机数),随机生成标准正太分布:randn(1,3)(均值为0,方差为1)

将向量绘制直方图hist(w),默认分为10份,也可自行设置份数 hist(w,50)

生成单位方阵 eye(4)

查看指令的帮助文档help rand

查看help 指令如何使用help help

移动数据

查看矩阵维数 sz = size(A),返回一个1*2的矩阵,表示A的行数和列数,size(A,1)仅返回A的行数,size(A,2)返回A的列数,length(v) 返回行和列中较大的维数

显示当前目录:pwd,修改路径:cd:\Users\ang\Octave files 显示当前目录下的文件:ls

加载文件: load q1y.dat (需要先切换到文件所在的目录)

查看当前工作空间有哪些变量:who,显示变量的详细信息:whos

清除变量:clear q1y

v = q1x(1:10) :v为qx每列中的第一个元素

保存数据save hello.mat v:将v中元素存入hello.mat文件,支持 fopen, fread, fprintf, fscanf

按下标索引:A(3,2) ,获取第二行:A(2,:) 获取第二列:A(2,:) 获取第一列和第三列A([1 3],:) 修改A的第二列:A(:,2)=[10;11;12] 在A的最后插入一列:A=[A,[100;101;102]] 将A中的所有元素取出来排成向量:A(:)

A=[1 2 ; 3 4 ; 5 6] B=[11 12 ; 13 14 ; 15 16] B加在A右边:C=[A B]C=[A,B] B加在A下面:C=[A;B]

数据计算

A = [1 2;3 4;5 6] B = [11 12;13 14;15 16] C = [1 1;2 2] v = [1;2;3]

矩阵相乘:A*C 对应位置相乘(点乘):A.*B A中的每个元素都乘方:A.^2

A中每个元素都用1除:1./A A中每个元素都取对数:log(A)

A中每个元素都取e的指数:exp(A) A中每个元素都取绝对值abs(A)

A中每个元素都乘以-1:-A-1*A A中每个元素都加1A+1

A的转置:A'

a=[1 15 2 0.5] val=max(a):返回向量a中的最大值,[val,ind]=max(a):返回A的最大值和下标

val=max(A):返回每一列的最大值

a<3:将a中的每个元素与3比较,大于3为0,小于3为1,返回与a同维度的矩阵

find(a<3):找出a中所有小于3的元素组成一个向量

A = magic(3):构造魔方矩阵(在每行每列、对角线上的和都相等的矩阵)

[r,c] = find(A>=7):返回满足条件的行和列

sum(a):求向量a的元素和,sum(A):求A每一列的和,返回行向量 (与sum(A,1)相同) sum(A,2):求每一行的和,返回一个列向量 ; sum(sum(A)):求矩阵最大值

max(rand(3),rand(3)):求两个矩阵每个位置较大的值 ;

max(A,[],1):每列最大值(默认) max(A,[],2):每行最大值

inv(A):求矩阵的逆(方阵且可逆),pinv(A):求伪逆 即inv(A'*A)*A'

绘制数据

t = [0:0.01:0.98];:指定t的范围 y1 = sin(2*pi*4*t); plot(t,y1) :绘制t-y1曲线

y2 = cos(2*pi*4*t); hold on :原图保存 hold off:关闭原图 plot(t,y2,'r');:红色线画出y2

xlabel('time'); ylabel('value'); :x、y轴加上标签 legend('sin','cos'):给曲线加标注 title('my plot'):图像加标题 print -dpng 'myPlot.png':保存图片 close:关闭图片

figure(1); plot(t, y1); figure(2); plot(t, y2); :两张图画在不同窗口

在同一窗口不同网格画图:subplot(1,2,1); plot(t,y1); subplot(1,2,2); plot(t,y2);

设定图像x、y范围:axis([0.5 1 -1 1]);

imagesc(magic(15)) :将矩阵中的元素数值按大小转化为不同颜色

控制语句f

for 、while、if 语句都以end结束

v = zeros(10,1);
for i=1:10,
  v(i) = 2^i;
end;
i = 1;
while true,
v(i) = 999;
i = i+1;
if i == 6,
  break;
end;
end

函数

函数结构 function y = squareThisNumber(x) ***.m文件 可以返回多个参数

调用方法:先将目录切换到函数所在位置 再使用命令 functionName(args)

 

 

 参考:吴恩达视频

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄