Octave简明教程

这里就不介绍octave是什么了,如果你真心想学习ML的话,octave是一个可以帮助你进行计算的强大工具

《Octave简明教程》

符号

% 注释

~= 不等于

; (注意半角) 结束符号,命令行中可以不print出来

>, < , =值得一提的是这些符号可以应用到矩阵中,可以将矩阵中的每一个元素和符号后的数字进行比较,最终判断成立返回1, 判断错误返回0,比如这样

《Octave简明教程》

PS1(“>> “) 可以把命令行的开始符号变成>>

命令

sprintf(“%0.2f”, a) 类似c语言中的输出
disp() 显示字符串

矩阵

v = 1:0.1:2 1是开始,0.1是步长,2是结束,包括1.0,所以有11个数

矩阵初始化
a  = [1 2 3; 4 5 6; 7 8 9] 

《Octave简明教程》 矩阵a

注意一下,;代表的是换行,每一行中可以拿,隔开也可以不用,直接空开就可以。

特殊矩阵初始化

以下矩阵创建中第一个参数都是行,第二个都是列

《Octave简明教程》 1矩阵
《Octave简明教程》 0矩阵
《Octave简明教程》 随机矩阵
《Octave简明教程》 方差标准差都为1的矩阵
《Octave简明教程》 魔法矩阵

这个矩阵特别有意思,以第一行第一个为例,sum(第一行) = sum(第一列) = sum(第一个元素所在对角线)

《Octave简明教程》 单位矩阵

矩阵索引
a(1,1)
>> 1 
a(1,2)
>> 2 

这里需要用圆括号扩起来,第一个数字是行,第二个是列,octave中是从1开始数数的而不是0

矩阵变化

继续拿上面的a为例吧

《Octave简明教程》

重新赋值

《Octave简明教程》 将第一行的值替换成10 11 12

参数意义还是不变的,第一个代表行,第二个代表列,:表示的是所有

添加新行/列

《Octave简明教程》 添加到新列
《Octave简明教程》 添加到新行

如果你仔细观察的话就会发现新列是用,(空格也行)隔开的,而新行是用;隔开的,很符合我之前提到的;换行规则吧~ 需要注意的是添加新的矩阵兼容性

矩阵向量化

《Octave简明教程》

矩阵计算

继续拿上面的a为例吧

《Octave简明教程》

矩阵相加

《Octave简明教程》 全部加1

矩阵相减

《Octave简明教程》 全部减1

矩阵相乘

叉乘

需要注意的是矩阵的兼容性

《Octave简明教程》

点乘

《Octave简明教程》

矩阵除法

指的是给矩阵中每一个元素都除以一个相同的数字

《Octave简明教程》

矩阵幂运算

《Octave简明教程》

矩阵指数运算

《Octave简明教程》

矩阵对数运算

e为底的

《Octave简明教程》

以2为底的

这里用的例子还是原来的3 X 3例子并使上面的e e e

《Octave简明教程》

以10为底的

自行把2换成10就可以了

函数

length()

《Octave简明教程》

length返回的是长度,有可能是行的个数有,可能是列的个数。这取决于那个时候更大

max()

《Octave简明教程》

对于向量来说会返回其中最大的一个数字

《Octave简明教程》

对行向量来说会返回最大的一个数字

《Octave简明教程》

对矩阵来说会返回一个向量,向量的每一行对应原来矩阵每一行的最大值

《Octave简明教程》

返回矩阵中最大的一个数值

《Octave简明教程》

返回一个行向量,对应该列最大的数,1代表列

《Octave简明教程》

返回一个向量,对应该行最大的数,2代表行

floor()

《Octave简明教程》

向下圆整

ceil()

《Octave简明教程》

向上圆整

sum()

《Octave简明教程》

返回一个行向量,将每一列相加,1代表列

《Octave简明教程》

返回一个向量,将每一行相加,2代表行

flipud()

《Octave简明教程》

将矩阵上下颠倒

画图

简单图像

《Octave简明教程》
《Octave简明教程》

画一个二次函数吧!

hold on %比如说我们还想在原来的基础上画一个图像
y2 = -x .^ 2 + 1;
plot(x, y2, 'r');

《Octave简明教程》

% 加标签
xlabel("x value");
ylabel("y value");
legend("x^2", "-x^2+1"); % 对应图中的颜色线条注释
title("first plot");
cd Desktop; print -dpng "firstPlot.png" %会保存到桌面上

《Octave简明教程》

画多个图
figure(1); plot(x, y1);
figure(2); plot(x, y2);

《Octave简明教程》

subplot()
subplot(1, 2, 1);

《Octave简明教程》

第一个和第二个参数代表的是把图分为 1 X 2, 第三个参数是使用第一个部分。

subplot(1,2,1); %使用第一部分
plot(x,y1); 
subplot(1,2,2); %使用第二部分
plot(x,y2,'r');

《Octave简明教程》

axis([0.5 1; -1 1]);

这个可以改变轴的长度,前两个是x轴,后两个是y轴,从起始长度到结束长度。

clf

清楚之前画过的图像

彩色矩阵图矩阵图
a = magic(10);
imagesc(a);

《Octave简明教程》

额外参数
imagesc(a), colorbar, colormap gray;

《Octave简明教程》

colorbar指的是右边的棒状色卡,colormap “color”指的是画面的颜色

基本语法

for
for i=1:10
  disp("Hello world");
end;

不像python,octave中的for不需要缩进, 其次是赋值1:10,需要end

while
a = 10;
while a > 0
  disp("HI");
  a -= 1;
end;

需要end

if/else
> if a > 1
>   disp("a is bigger than 1");
> else
>   disp("a is smaller than 1");
> endif;

>> a is smaller than 1

结束的时候是endif.

    原文作者:Pan231
    原文地址: https://www.jianshu.com/p/00cfebc317fb
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞