0 Octave简介
- Octave是一种高级的解释性编程语言,主要解决线性的或者非线性的计算问题,使用Octave可以快速的实现你的算法。
1 基本操作
-
在命令行内可以进行简单的加减乘除运算
基本操作
-
常用命令及符号
常用符号/命令 |
Octave中的表示 |
注释 |
% |
不等于 |
~= |
输出长格式 |
formate long |
输出短格式 |
formate short |
格式化输出 |
disp(sprintf(' %0.2f ', a)) |
矩阵建立 |
A = [1 2; 3 4; 5 6], 输出为一个三行两列的矩阵,分号代表行的切换,逗号或者空格代表列的切换 |
快速建立向量 |
V = 1:0.1:2,起始值为1,终止值为2,步步长为0.1, 如果不输入步长,默认·=为1 |
生成全1矩阵 |
A = ones(2, 3),输出为两行三列的全1矩阵 |
生成全0矩阵 |
A= zeros(2, 3),输出为两行三列的全0矩阵 |
生成随机矩阵 |
A = rand(2, 3),输出为两行三列的随机值矩阵,所有值介于0、1之间 |
生成单位矩阵 |
A = eye(2, 2),输出为两行两列的单位矩阵 |
生成魔方阵 |
A = magic(3),行、列、对角线相加都相等 |
help |
帮助命令 |
2 移动数据
-
介绍怎样把数据存入矩阵,怎样保存计算结果
-
常用命令
命令 |
释义 |
获取矩阵大小(行数,列数) |
size(A) |
获取矩阵特定维度的大小 |
size(A, 1),获取矩阵第一维度的大小,也就是行数 |
获取矩阵最大维度的大小 |
length(A) |
加载文件到内存 |
load(filename) |
显示Octave工作空间中所有的变量 |
who |
清除某个变量 |
clear varName |
保存数据到文件 |
save varName filename |
代码 |
释义 |
A(2, 3) |
第二行第三列的数值,(矩阵形式返回,下同) |
A(2, :) |
第二行所有的数据 |
A(:, 2) |
第二列所有的数据 |
A([1, 3], :) |
第一行和第三行的所有数据 |
代码 |
释义 |
A(:, 2) = B |
矩阵的列整体替换 |
A = [A, B] |
在矩阵右侧附件矩阵 |
A = [A; B] |
在矩阵下侧附件矩阵 |
3 计算数据
操作 |
代码 |
矩阵乘法 |
A*C |
矩阵点乘 |
A*C,返回A中的每一个元素与C中相同位置元素相乘后的结果 |
矩阵的元素位运算 |
. 表示元素的位运算,例如A.^2 表示对A的所有元素平方 |
对每个元素操作 |
log(A)、exp(A)、A+1、A<3 |
矩阵转置 |
A' |
求矩阵最大元素 |
[val, ind] = max(A), 返回最大元素机及其位置 |
查找符合条件的元素 |
find(A) |
求和 |
sum(A) |
求乘积 |
prod(A) |
向下四舍五入 |
floor(A) |
向上四舍五入 |
ceil(A) |
求逆矩阵 |
pinv(A) |
代码 |
释义 |
max(A) |
返回每列的最大值 |
max(A, [], 1) |
返回每列的最大值 |
max(A, [], 1) |
返回每行的最大值 |
max(max(A)), 返回最大值
代码 |
释义 |
sum(A, 1) |
返回每列的总和 |
max(A, 2) |
返回每行的总和 |
sum(sum(A)), 返回总和
4 绘图
示例 |
释义 |
plot(y) |
如果y是列向量,会默认给每一个y设置对应的x为1-n进行绘图,如果y有多列,就会绘制多条曲线 |
plot(x, y) |
根据x、y确定的点就行绘图,y可以设置成某个以x为因变量的函数 |
hold on |
将新的图像绘制在原有的之上 |
plot (x, y, 'r') |
红色曲线 |
xlabel\ylabel |
设置轴线的名称 |
legend("a", "b") |
在图的右上角标记两条曲线 |
title("title") |
设置图的标题 |
subplot(1, 2, 1) |
将图像分为一个1*2的格子并绘制在第一个格子上 |
axis([1 2 3 4]) |
调整x、y轴的范围为(1,2) (3,4) |
clf() |
清除一张图像 |
5 控制语句
for i=1:10,
A(i) = 2^i;
end;
i = 1;
while i <= 5,
A(i)= 2^i;
i = i + 1;
end;
% 该函数返回y
% 该函数要求一个参数x
function y = squareThisNumber(x)
y = 2^x