概述
Octave是一款用于数值计算和绘图的开源软件, 精于矩阵运算:求解联立方程组、计算矩阵特征值和特征向量等等,并能够通过多种形式将数据可视化。在Mac下运行界面如下:
基本运算
Octave最简单的使用方式就是像使用一个计算器一样在命令提示符下输入相应的计算式。Octave能识别通常的计算表达式。例如,在终端输入
octave:##>2+2
并按回车键,你将得到以下的结果
ans=4
各种计算符号的优先级与常规的一致,比如括号有最大优先级,其次为乘方,其次为乘、除运算,最后为加、减运算。
内建函数
Octave还提供了一系列的常用数学函数,其中的一部分函数如表1所示:
如计算1.2sin(40+ln(2.42)),输入octave:##>1.2*sin(40*pi/180+log(2.4^2)),输出为ans=0.766177651029692
Tips
1. 角度制的可以通过乘以引子π/180转换为弧度制;
2. pi是Octave中变量;
3. 自然对数是用‘log’而不是‘ln’来表示的
4. 需要查看某个变量的数值,输入其变量名并回车
5. 想查看当前名命名或者使用的函数名和变量名,输入who
6. 如果你需要从当前的变量空间中删除某个变量,clear命令能移出所有的变量,或者移出某个特定变量
7. format命令能让你选择数值显示的不同方式
8. 1.31426×104,而在Octave中这个科学数值被显示为1.3143e+04
9. 复数(3+4i)可以被识别
10. 一个数除以0,结果是无穷大(Inf)
11. 0除以0得到的结果是非数值(NaN)
12. 保存当前会话的数据并在之后重新载入它save [filename] anyname,重新载入之前保存的命名空间load [filename] anyname
13. 通过方向键中的↓和↑来查看之前输入的命令,←和→移动光标并进行相应的编辑操作
14. 了解某个Octave命令的功能或者是你需要找一个特定的函数 help commandname;给出一个其帮助的主题列表help -i;输入‘q’来退出帮助系统并返回到octave命令行。3.7取消一个命令
15. 程序将被中止并返回到命令提示界面使用Ctrl-C
16. 在一行语句的末尾添上分号,Octave将不会显出相应的,否则会显示结果
17. 打开分屏显示more on,关闭分屏显示more off
数组和向量
构造向量:
1. a=[1 4 5];
2. d=[a 6];
3. e=2:0.3:4
向量构造函数:
1. zeros(M,N) 创建一个M×N的零矩阵
2. ones(M,N) 创建一个M×N的全1矩阵
3. linspace(x1,x2,N) 创建一个N个元素的向量,均匀分布于x1和x2之间
4. logspace(x1,x2,N) 创建一个N个元素的向量,指数分布与10的x1次方和10的x2次方之间
获取向量值:向量中的元素通过括号(),而第一个元素的编号为1,不是像C那样从0开始
1. 向量的第三个元素a(3)
2. 冒号的表示法同样可以用于声明向量中的元素的范围a(3:5)/a(1:2:5)
向量计算
1. 遵循向量+、-、*、/
2. 两个向量的相乘遵循矩阵的乘法法则,向量乘法并不是对应元素的相乘。如果要两个向量的进行对应元素的乘除法, 你可以使用.*或者./算符
3. ^ 为乘方计算
画图
最基本的画图命令是plot(x,y),其中x,y分别为横轴和纵轴数据,
举例如下:
angles=linspace(0,2*pi,100),y=sin(angles), 则plot(angles,y)图像如下:
使用优化参数plot(angles,y,'ro'),图像如下:
plot(angles,y,'ro')图像如下:
画图的形状参数如下:
title('Graph of y=sin(x)'),xlabel('Angle'),ylabel('Value')进行标题,横轴,纵轴的表示,图像如下
replot命令来更新图片,grid命令为图片添加网格线,如图
一幅图上可以画多条曲线,hold命令来实现。通过在plot命令中按照次序给出每条曲线的x和y向量,如plot(angles,ycangles,cos(angles)),legend命令为该图片添加相应的图例legend('Sine','Cosine'),图像如下:
Tips:
1. 多幅图片可以通过figure命令来控制。figure命令下一个plot命令将会在新创建的窗口中绘制,figure(1)返回上一张图片
2. 保存当前图像到一个eps文件 print('graph1.eps','-deps')
路劲
1. 查看搜索路劲 path
2. 增加path addpath('/home/bob/bin/octave');
3. 对path的修改 savepath