ML:机器学习中常用的Octave语句

coursera上吴恩达的机器学习课程使用Octave/Matlab实现算法,有必要知道Octave简单的语句。最重要的:在遇到不会的语句,使用'''help <语句>'''或者'''doc <语句>'''查看官方文档。


基本操作

  • help/显示命令的简要帮助信息
  • doc/显示命令的详细帮助文档
  • length/应用到到矩阵时返回较高的一维的dimension
  • save/保存数据,如保存变量到.mat文件:save hello.mat b 以二进制压缩保存数据
  • mean/矩阵每列求平均,如x为33矩阵,mean(x)将返回13矩阵
  • A([1 3], : )/获取第 1、3两行所有列的数据
  • C= [A; B]/;号表示向下面行添加,因此会增加相应行数,列数不变
  • A = [A, [100; 101; 102]]/在A矩阵后面加一列列向量
  • [m,n]=size(A)/返回矩阵A的dimension,A为m*n矩阵

基本运算

  • A.*B/矩阵或者向量点乘(各个位置处的数字对应相乘)
  • A*B/矩阵叉乘
  • log(x)/log(x)为数学上的ln(x)
  • exp(x)/exp(x)为数学上的ex
  • A'/A'为数学上的AT,即矩阵A的转置
  • [value,index]=max(A)/max(A)求矩阵A各个列的最大值和索引
  • A<3/对矩阵中每一个值判断是否小于3,小于返回1,否则返回0。返回与A同样大小的矩阵
  • rand(3,3)/生成3*3矩阵,矩阵内的值为0~1的随机值
  • sum(A)/对矩阵A的每列求和,若想求矩阵A的所有值的和,可以使用sum(sum(A))
  • pinv(A)或者inv(A)/求矩阵A的逆矩阵

数据图形化

  • t = [0.1 : 0.01 : 0.98]; y = sin(t); plot(t, y) 画正弦曲线
  • hold on; 保留当前曲线,画下一条曲线
  • xlabel 标定x轴说明
  • legend('sin','cos') 添加图例
  • title('my plot') 添加图片标题
  • print -dpng 'myPlot.png' 保存图片

for,while,if

  • for
  • while
  • if

函数的定义

  • 示例
    function [a,b]=SquareAndCubeTheNumber(x)
    其中function为关键字,函数返回值为a和b,函数名为SquareAndCubeTheNumber,函数的参数为x