目录
一,基础操作
1.1 数据类型与矩阵
octave中有基本的整数,浮点数,字符串等类型,还能自建结构体。其中最常用的数据结构为矩阵。
矩阵默认有两维(可以用N维),创建方法有 :
(1) m = [* * * ; * * * ; * * *] ,其中以空格相隔的元素在同一行,分号相隔表示换行。
(2) m = [a: step: b], 表示创建一个行矩阵,矩阵内的元素从 a开始到 b截至,以 step为递增步长。
(3) 通过特殊函数来创建,假设矩阵的维数和每维的大小由参数shape指定,具体有:
ones( shape ),表示创建一个元素全为 1的矩阵。
zeros( shape ),表示创建一个元素全为 0的矩阵。
rand( shape ),表示创建一个元素全为 随机数的矩阵。
randn( shape ),表示创建一个元素全为 随机数且元素满足高斯分布的矩阵。
eye(N),表示创建一个 N*N的单位矩阵。
magic(N),表示创建一个N*N的幻方
1.2 基本运算
octave中除了支持基本算逻运算,还有很多内置的数值计算函数,这里简单列举基本运算。
算术运算: 加减乘除 +,-,*, /,次幂 a^b(a的b次幂),开方sqrt()等。
逻辑运算: 与 &&,或||,非 ~,异或 xor(x,y), 相等 ==, 不等 ~=等。
矩阵操作: A' 矩阵转置, inv(A),矩阵求逆, pinv(A)矩阵求伪逆。
需要注意的是矩阵之间可以使用 +,-,*等运算,但如果在运算符前加点(其他同) 如 .+, .-, .*, ./ 就变成了矩阵之间相应元素位置上运算了,此时运算的两个矩阵要求维数和维数大小均相同, 计算结果为 :。
1.3 系统命令和一些操作符及函数
help function, 用来快速查找有关function的文档资料,类型Linux里的 man。
PS1,用来设置系统提示符。
format,用来控制变量输出时的格式和精度。
pwd,当前路径
cd,改变路径
ls,当前路径下的文件信息
%,用以注释
;,除输出函数外,阻止语句输出。
,,逗号隔开的指令依次执行。
二,显示数据
disp(),用以显示变量。
sprintf(),以字符串的形式格式化输出变量和字符,类似C语言中的printf()。
hist(),显示变量(矩阵)中数据的统计直方图。
who,显示内存中所有变量。
whos,更详细的变量详细。
size(矩阵,维度),显示矩阵相应维度的大小,默认显示所有维度的大小。
length(矩阵),输出矩阵最长一维的大小。
三,数据移动
3.1 外部文件数据
load filename 或 load(‘filename’), 加载文件数据。
save filename variablename, 将 变量中的数据以二进制的形式压缩存储到指定文件中, 可选参数-asscii 表示以字符的显示存储。
3.2 内存变量
clear,清空内存数据 clear variable,清空单个变量
priece 变量(维度), 切取前()个元素,可做左值也可做右值。
3.3 矩阵取值
假设 A,B,C均为矩阵
C = [A B] = [ A, B], C为 以A,B为分块的大矩阵。
A(:), 将矩阵内所有元素组成一个 列向量
A[x1,x2,x3,....,xn],指定下标的元素
A[X , :] 矩阵中某一行 。
注:矩阵也可做其他矩阵的索引。
四,常见函数
4.1 数值计算
exp(x),e的X次幂(矩阵中每个元素都相应计算一次)。
log(x),以2为底x的对数(矩阵中每个元素都相应计算一次)。
sin(X),cos(X),tan(X)等,三角函数。
sum(x),矩阵所有元素求和。
prod(x),矩阵所有元素相乘。
4.3 取值
floor()/ceil(),浮点数向下/向上取整。
abs(),取绝对值。
max(),min(),求 最大(最小)元素及其相应下标,矩阵之间则是对应元素取最大(最小)。
find( A < 3),返回满足条件的元素对应的下标。
五,绘制图像
plot(),显示绘制的图像。
subplot(),画板分块,将图像显示在相应的块中。
hold on,保留旧图不被刷新。
close,关闭图像。
axis(),修改数轴刻度。
xlabel(),ylabel(),图像坐标轴的名称。
title(),图像名称。
legend(),给绘制的图像标注。
print -dpng filename, 将绘制的图像保存为指定文件,-d参数后可指定需要保持的图像格式。
figure(num),给图像编号(可防止图像覆盖?)。
clf,清空画板上的内容。
imagesc(A),绘制颜色矩阵,colorbar 添加颜色条,colormap gray 将图像变成灰度图。
六,控制结构与函数
6.1 控制结构
for循环:
for judge statement,
instruction
end
while循环:
while judgement,
instruction
end
if 选择:
if judgement,
instruction
elseif judgement,
instruction
else,
instruction
end
% break, 跳出循环或判断。
% continue,直接过度到下一次循环。
6.2 函数
可将函数存为后缀为' .m'的文件,当文件在搜索路径中时,可之间调用。
function [返回值列表] = 函数名(参数列表)
函数内容