1 背景:
=====
1.1 最近国内哈工大等大学,被禁用Matlab,如果全国都被禁用Matlab,对他们公司商用的Matlab是很大的损失,也会给我国的科研人员也造成很大的不便。
1.2 而Octave是一个不错的选择。
2 介绍:
=====
2.1 Octave是一款用于数值计算和绘图的免费的开源软件。
2.2 和Matlab一样,Octave 尤其精于矩阵运算:求解联立方程组、计算矩阵特征值和特征向量等等。
2.3 Octave和Matlab被工程人员和科研人员广泛使用来进行各种工业和学术上的数值计算和仿真。
2.4 octave 可以理解为matlab免费版,适合可视化仿真,快速实现算法。
2.5 四大机器学习编程语言有:R、Python、MATLAB、Octave,是不是突然觉得Octave,也很牛。
2.6 Octave是矩阵运算的利器,可以用来解方程组matlab怎么调用function函数,数据可视化绘图等等。
2.7 Octave 最初是在 1992 年作为化学反应器设计教科书的一个辅助软件而编写的。
3 准备:
======
3.1 环境:华为笔记本电脑、深度deepin-linux操作系统。
3.2 安装:
#安装
sudo apt-get install octave #不指定版本安装
#查看版本
octave --version
GNU Octave, version 4.0.3
#这样安装,不是最新版5.2.0,但是够用了
最新版本
3.3 官网:
http://www.gnu.org/software/octave/ #速度很慢
3.4 Octave的脚本是普通的文本文件,但是他们需要有一个.m 的后缀。因此,它们通常也被称为M文件。
4 初体验:
=======
4.1 方法一:终端输入:
octave #自动弹出图形界面
4.2 方法二:
4.3 小bug:不是每一台机器都可能出现的matlab怎么调用function函数,本机linux系统。
4.3.1 报错:
在这个解释器窗口里出现:
QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed: 设备上没有空间
4.3.2 解决办法:打开终端
sudo sysctl fs.inotify.max_user_watches=524288 #添加最大监控文件数量
sudo sysctl -p
4.4 个性化设置:略。我已经自己搞定了。
5 sin和cos函数作图:
===============
5.1 sin函数静态图:
5.1.1 代码:
%:注释用%,类似于python的#
%从-10到10,间隔0.1取值
%注意每一行结束用;(英文状态下的分号结尾,与python不同)
x = -10:0.1:10;
plot (x, sin (x));
xlabel ("x");
ylabel ("sin (x)");
title ("Simple 2-D Plot");
5.1.2 运行方法一:
复制代码过去,如图:
5.1.3 运行方法:调用m文件
将代码文件保存为sin.m,代码如下:注意这里有个bug,后面讲到:文件名不能取函数名sin等等。
%:注释用%,类似于python的#
%从-10到10,间隔0.1取值
%注意每一行结束用;(英文状态下的分号结尾,与python不同)
x = -10:0.1:10;
plot (x, sin (x));
xlabel ("x");
ylabel ("sin (x)");
title ("Simple 2-D Plot");
从editor调取
5.2 cos函数静态作图:同上。
5.3 3D图
5.3.1 代码:
#! /usr/bin/octave
%定义x-axis and y-axis,它们都是1×21的矩阵.
xa = -2:0.2:2;
ya = xa;
%绘制网格,x与y都是21*21的矩阵
[x,y] = meshgrid(xa,ya);
z = y+x;
%绘制网眼图
figure(1);mesh(x,y,z);
%运算符前加点,表示矩阵对应元素之间的运算
z = x.*exp(-x.^2 - y.^2);
%figure(2);表示新窗口作图
figure(2);surf(x,y,z);
5.3.2 效果图
===第2次运行之后有bug===
>> cos
error: invalid use of script /home/xgj/Desktop/octave/cos.m in index expression
error: called from
cos at line 2 column 4
>> sin
error: invalid use of script /home/xgj/Desktop/octave/sin.m in index expression
error: called from
sin at line 2 column 4
在命令窗口可以,在调用m文件editor窗口sin和cos不行,bug,后面纠正了,m文件不能取函数名。
怎么解决这个问题?呵呵呵。
bug===终于解决了,是自己的问题。我把文件名取为sin.m和cos.m,与系统调用函数重名。
6 柱状图:
======
6.1 代码:2bar.m
x = [1:10];
y = [75, 90, 87, 68, 50, 88, 78, 99, 60, 66];
bar(x, y), xlabel('Student'), ylabel('Score'), title('First Sem');
6.2 2种方法演示:
7 等高线:
=======
7.1 代码:
[x, y] = meshgrid(-5: 0.1: 5, -3: 0.1: 3); %
g = x.^2 + y.^2; % 函数 g
[C, h] = contour(x, y, g); % 绘制等高线图
set(h, 'ShowText', 'on', 'TextStep', get(h, 'LevelStep')*2);
7.2 演示:
8 折线图:
=======
8.1 代码:
x=[10,12,22,31,24,11,23];
y=[22,32,18,24,41,31,36];
plot(x,y);
xlabel('Exam 1 score');
ylabel('Exam 2 score');
legend('Admitted', 'Not admitted');
8.2 演示图:
9 3d图,并纠正上述bug,文件名不能取函数sin和cos名。
9.1 代码:
n = 50;
x = y = linspace (-8, 8, n)';
[xx, yy] = meshgrid (x, y);
r = sqrt (xx .^ 2 + yy .^ 2) + eps;
c = 5 * sin (r) ./ r;
h= surf(xx,yy,c,c);
shading interp
9.2 上述代码的显示图和纠正bug的演示:
===今天只是简单介绍cotave的基本情况和部分数据可视化绘图===
毕竟:octave也是四大机器学习编程语言之一,不能用MATLAB,用它也不错!!
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: qihangxm102