Octave 学习笔记

96
漠简尘
2017.12.11 21:03 字数 174

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()函数
代码 释义
max(A) 返回每列的最大值
max(A, [], 1) 返回每列的最大值
max(A, [], 1) 返回每行的最大值

max(max(A)), 返回最大值

  • sum()函数
代码 释义
sum(A, 1) 返回每列的总和
max(A, 2) 返回每行的总和

sum(sum(A)), 返回总和

4 绘图

  • plot() 函数
示例 释义
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循环
for i=1:10,
  A(i) = 2^i;
end;
  • while循环
i = 1;
while i <= 5,
  A(i)= 2^i;
  i = i + 1;
end;
  • 函数
% 该函数返回y
% 该函数要求一个参数x
function y  = squareThisNumber(x)
y = 2^x
工具使用
Web note ad 1