一、Octave简介
是一款用于数值计算和绘图的开源软件。和Matlab 一样,Octave 尤其精于矩阵运算:求解联立方程组、计算矩阵特征值和特征向量等等。在许多的工程实际问题中,数据都可以用矩阵或向量表示出来而问题转化为对这类矩阵的求解。另外,Octave 能够通过多种形式将数据可视化,并且Octave 本身也是一门编程语言而易于扩展。因此我们可以称Octave 是一款非常强大的可编程可视化计算程序。
Octave被工程人员和科研人员广泛的使用来进行各种工业和学术上的数值计算和仿真。
二、笔记
- 简单计算
Octave最简单的一种使用方式。像通常使用一个计算器一样输入相应的计算式,按回车键获得结果,而且各种计算符号的优先级与常规的一致,比如括号有最大优先级,其次为乘方,其次为乘除运算,最后为加减运算。
除了 一些简单基本运算外,Octave还提供了一系列的常用函数,可以像其他语言通过函数名和参数调用函数一样使用。
- 环境
Octave允许定义并使用自定义的变量,而且Octave中的变量的类型是不声明的,所有类型都是浮点型或字符串。
注意:Octave变量的定义是区分大小写的,同时Octave的结果只以一定的精度展示出来,而实际上存储的数据的精度要高很多。
可以通过输入变量名来查看某个变量的数值,通过输入who来查看当前命名和使用的函数和变量名。通过输入clear可以清楚所有的变量,也可以通过clear name来清除某一特定的变量。
- 数值格式
Octave使用科学记数法可以表示很大或是很小的数字,通过format命令来让你选择数值现实的不同方式。
Octave 中的数值,通计算机中存储的数值一样,是用二进制的形式而不是十进制的形式存储的。所以在计算时要考虑允许精度和误差。
- 命令
Octave允许保存当前会话的数据,并之后重新载入。例如:save anyname命令就将当前整个工作空间的额变量存储到一个当前目录下一个名为anyname.mat的文件下,之后通过load anyname来重新载入,并从中断的地方继续工作。也可以通过**save filename var1 var2…**的当时来存储你想要的变量。
Octave 会记录你在一个会话中输入过的命令,而你可以通过方向键中的上和下来查看之前输入的命令(最近的命令排列在最前)。如果你想重复其中的一个命令,你只需要用方向键找到该命令并按回车。一旦一个已执行命令被重新调出来,你可以在再次执行它之前编辑它。你可以用左和右移动光标并进行相应的编辑操作。
你可以通过help commandname来获取帮助。例如:
如果你不知道自己想要de函数的名字,可以通过help 来获得一个帮助列表。
可以通过Ctrl -C来中止当前的执行,程序将被中止并返回命令提示界面。
- 数组和向量
可以通过在一个方括号[]中给出其元素来构造矩阵或向量。
>> a = [1 4 5]
a =
1 4 5
>> a = [1,4,5]
a =
1 4 5
>> b=[1;4;5]
b =
1
4
5
在方括号中由空格或者逗号隔开的一组数据被定义为行向量; 而由分号或者回车隔开的一组数据被定义为列向量。你可以通过已经定义的向量来定义新的向量。
>> c=[a,6]
c =
1 4 5 6
利用冒号来创建一些特殊的变,冒号表达式的规则是告诉octave 创建一个以第一个数字开始并以一递增至第二个数的向量。在第一和第二个数之间可以插入第三个参数来声明向量中元素之间的递增量,
>> a = 1:6
a =
1 2 3 4 5 6
如果Octave 无法用单屏显示一个向量或者矩阵,它将分屏显示这个量按空格键来显示下一屏的内容而按**’q’** 退出显示并返回到Octave 命令提示符。你同样可以按**‘b’键向上翻页并查看已显示的内容。
如果你想关闭Octave 的这个显示功能,输入more off命令即可。这个功能通过以下命令可以重新打开more on**。
Octave提供更多的响亮构造函数,例如:
其中的M,N表示矩阵的行数和列数。
>> zeros(2.3)
ans =
0 0
0 0
向量中的元素通过括号(),而第一个元素的编号为1,冒号的表示法同样可以用于声明向量中的元素的范围。
>> a=[1:2:6 -1 0]
a =
1 3 5 -1 0
>> a(2)
ans = 3
Octave中很方便向量的计算,例如通过向量乘一个数来实现向量中的每一个数都乘该数。
>> a*2
ans =
2 6 10 -2 0
>>
除、和加减类似。乘法遵循矩阵的乘法法则。
每个运算符前面的**.**表示为一个元素对元素的计算。
>> a = [1,4,5]
a =
1 4 5
>> b = [2;3;4]
b =
2
3
4
>> a.*b
ans =
2 8 10
3 12 15
4 16 20
只要两个向量又相同的大小和形状,它们就可以进行元素之间(element-by-element) 加减乘除和乘方运算。
>> angles=[0:pi/3:2*pi]
angles =
0.00000 1.04720 2.09440 3.14159 4.18879 5.23599 6.28319
>> y=sin(angles)
y =
0.00000 0.86603 0.86603 0.00000 -0.86603 -0.86603 -0.00000
- 画图
Octave 通过调用另一个开源软件GNUPLOT2来实现非常丰富的画图功能3。最基本的画图命令是plot(x,y), 其中x,y 分别为横轴和纵轴数据。
可以通过更多的选项来指定图形的样式。
同样我们可以画多条曲线。
Octave/Gnuplot 没有提供鼠标或者快捷键操作来实现图片的打印操作。然而Octave 提供了print 命令
来将图片打印到默认的打印机上。help print 命令给出所有的print 命令提供的选项,包括
>>print('graph1.eps','-deps')
来保存当前图像到一个eps 文件或者
>> print('graph1.png','-dpng')
将当前图像保存为一个png 文件。
有关Octave使用的详细内容可见:file:///E:/Octave4.2.0/Octave-4.2.0/share/doc/octave/octave.html/index.html