说明

吴恩达老师的课程介绍Octave处理矩阵,几何图形,过滤出独立音频只要用一句代码搞定,所以也过来入门。

下载

下载地址: https://github.com/octave-app/octave-app/releases
下载并安装

更多种安装方式请参考
https://wiki.octave.org/Octave_for_macOS

学习资源

https://wiki.octave.org/Category:Resources

https://wiki.octave.org/Publications_using_Octave#Books

命令入门,教程https://wiki.octave.org/Using_Octave, 按照教程过一遍命令即可。

变量赋值

使用分配值给变量=(注意:分配是通过值传递)。

a  =  1 ;

注释

#%开始注释行,该注释行将继续到该行的末尾。

命令评估

除非以分号终止,否则每个命令的输出都将打印到控制台;。该DISP命令可用于打印输出的任何地方。使用exitquit退出控制台。

t = 99 + 1 # prints 't = 100'
t = 100

t = 99 + 1; # nothing is printed
disp(t);

100

数字运算

除了标准算术运算法则之外,还可以使用许多数学运算符。操作是浮点数。

x = 3/4 * pi;
y = sin (x)
y =  0.70711

矩阵

八度中的数组称为矩阵。一维矩阵称为向量。使用空格或逗号,分隔行和分号中的元素;以开始新行。

rowVec = [8 6 4]
rowVec =8   6   4
columnVec = [8; 6; 4]
columnVec =864
mat = [8 6 4; 2 0 -2]
mat =8   6   42   0  -2
size(mat)
ans =2   3
length(rowVec)
ans =  3

线性代数

使用Octave的矩阵语法,许多常见的线性代数运算都很容易编程。

columnVec  *  rowVec
ans = 64 48 32 48 36 24 32 24 16
rowVec  *  columnVec
ans = 116
columnVec '
ans = 8 6 4

访问元素

Octave以1为第一个数索引。矩阵元素的访问方式为 matrix(rowNum, columnNum)

mat(2,3)
ans = -2

用循环控制流

Octave支持for和while循环以及其他控制流结构。

x = zeros (50,1);
for i = 1:2:100 # iterate from 1 to 100 with step size 2x(i) = i^2;
endfory = zeros (50,1);
k = 1;
step = 2;
while (k <= 100)y(k) = k^2;k = k + step;
endwhile

向量化

使用矢量语法通常可以替换或简化For循环。运算符*,/和^都支持按元素操作.,在运算符之前写点。许多其他功能操作逐元素默认(sin,+,-等等)。

i = 1:2:100;      # create an array with 50-elements
x = i.^2;         # each element is squared
y = x + 9;        # add 9 to each element
z = y./i;         # divide each element in y by the corresponding value in i
w = sin (i / 10); # take the sine of each element divided by 10

绘图 画2D正弦 sin

可以使用矢量参数调用函数图以创建2D线图和散点图。

plot (i / 10, w);
title ('w = sin (i / 10)');
xlabel ('i / 10');
ylabel ('w');

字符串

字符串只是字符数组。可以使用带有sprintf或 fprintf的C样式格式来组成字符串。

firstString = "hello world";
secondString = "!";
[firstString, secondString] # concatenate both strings
ans = hello world!
fprintf ("%s %.10f \n", "The number is:", 10)
The number is: 10.0000000000

If-else

条件语句可用于在代码中创建分支逻辑。

# Print 'Foo'      if divisible by 7,
#       'Fizz'     if divisible by 3,
#       'Buzz'     if divisible by 5,
#       'FizzBuzz' if divisible by 3 and 5
for i = 1:1:20outputString = "";if (rem (i, 3) == 0)  # rem is the remainder functionoutputString = [outputString, "Fizz"];endifif (rem (i, 5) == 0)outputString = [outputString, "Buzz"];elseif (rem(i,7) == 0)outputString = "Foo";elseoutputString = outputString;endiffprintf("i=%g: %s \n", i, outputString);
endfor
i=1:
i=2:
i=3: Fizz
i=4:
i=5: Buzz
i=6: Fizz
i=7: Foo
i=8:
i=9: Fizz
i=10: Buzz
i=11:
i=12: Fizz
i=13:
i=14: Foo
i=15: FizzBuzz
i=16:
i=17:
i=18: Fizz
i=19:
i=20: Buzz

获得帮助

help plot
doc plot

Octave伪造包

可以从Octave Forge网站上添加社区开发的软件包, 以扩展Octave核心库的功能。(Matlab用户:Forge软件包的行为类似于Matlab的工具箱。)pkg命令用于管理这些软件包。例如,要使用Forge中的图像处理库,请使用:

pkg install -forge image # install package
pkg load image           # load new functions into workspace

翻译: Octave 入门教程相关推荐

  1. 微服务网关:SpringCloud Gateway保姆级入门教程

    什么是微服务网关 SpringCloud Gateway是Spring全家桶中一个比较新的项目,Spring社区是这么介绍它的: 该项目借助Spring WebFlux的能力,打造了一个API网关.旨 ...

  2. 什么是微服务网关?SpringCloud Gateway保姆级入门教程

    什么是微服务网关 SpringCloud Gateway是Spring全家桶中一个比较新的项目,Spring社区是这么介绍它的: 该项目借助Spring WebFlux的能力,打造了一个API网关.旨 ...

  3. db4o官方入门教程翻译--06.集合和数组

    .Net方向的关于使用db4o的资料很少,硬着头皮看官方的英文版入门教程.由于英文不太好比较费劲,感觉一定有朋友会遇到相同的问题.所以想将入门教程做一个简单的翻译,水平有限,不太明白的地方可以对照英文 ...

  4. Hyperledger Fabric 官网翻译入门教程--之关键概念(Hyperledger Fabric 模型)

    英文地址:http://hyperledger-fabric.readthedocs.io/en/latest/fabric_model.html Hyperledger Fabric Model/ ...

  5. 关于 MATLAB2019 快速入门教程(官方手册翻译)的几点说明

    4月份的两则博文: MATLAB2019 快速入门教程(官方手册翻译)(1/4) MATLAB2019 快速入门教程(官方手册翻译)(2/4) 是写在我尚未找到 MATLAB 中文文档时翻译的,现在我 ...

  6. Python3数据分析——NumPy快速入门教程(官网教程翻译)

    目录 一.基础篇 1.创建数组 2.打印数组 3.基本运算 4.通用函数(ufunc) 5.索引,切片和迭代 二.形状操作 1.更改数组的形状 2.组合(stack)不同的数组 3.将一个数组分割(s ...

  7. Kafka入门教程与详解

    1 Kafka入门教程 1.1 消息队列(Message Queue) Message Queue消息传送系统提供传送服务.消息传送依赖于大量支持组件,这些组件负责处理连接服务.消息的路由和传送.持久 ...

  8. 超强、超详细Redis数据库入门教程

    这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么 2.redis的作者何许人也 3.谁在使用r ...

  9. Linux大棚版redis入门教程

    后端开发过程中,有时需要考虑系统的实时性,那么缓存系统就派上用场了,当然,现在最常用的当属Redis,这篇文章转自 Linux大棚版redis入门教程 [本教程目录] redis是什么 redis的作 ...

  10. python使用教程pandas-十分钟搞定pandas(入门教程)

    本文是对pandas官方网站上<10Minutes to pandas>的一个简单的翻译,原文在这里.这篇文章是对pandas的一个简单的介绍,详细的介绍请参考:Cookbook .习惯上 ...

最新文章

  1. 南大电子机器人入驻云南_云南大学外语协会 英文歌曲演唱比赛
  2. Python基础教程(二):基础语法、变量类型
  3. 怎么把分钟转化成秒_怎么利用抖音短视频引流,手把手教你如何玩转抖音流量...
  4. Cacheable注解使用详解
  5. easyui源码翻译1.32--ValidateBox(验证框)
  6. Linux Ubuntu 安装编译Opencv 3.4.3 C++开发环境
  7. oracle12c 删除pdb用户,oracle 12c pdb测试:创建、开关、删除
  8. [洛谷P4052][JSOI2007]文本生成器
  9. 还在花钱买课呢?教你白嫖开放注册图书馆价值上万元的学习资源
  10. 农场游戏开发记录十二
  11. UI自动化之-使用DD_XOFT实现带有安全控件、U盾的输入
  12. iWebOffice使用VBA控制字体
  13. 单片机、嵌入式ARM学习网站推荐(多年的积累)
  14. Vue3源码-Proxy
  15. 如何推广自己的新网站
  16. PCM开发板模块实验指导--无刷马达实验
  17. 教你如何在vue-cli项目打包时避免踩雷(一)【早看早受益】
  18. Python 脚本帮你找出微信上删除了你的“好友“
  19. win10无法访问共享解决办法
  20. Win10桌面一刷新就卡死

热门文章

  1. oracle序列不连续,Oracle不连续的值,如何实现查找上一条、下一条
  2. python求偏度系数_python pandas库和stats库计算偏度和峰度(附程序)
  3. java无法启动安装程序,Windows Fix中无法启动Java更新安装程序错误
  4. vue-cli3 处理静态文件 下载引用
  5. 【转】响应式布局和自适应布局详解
  6. ul列表中包含input时line-height属性失效的解决办法
  7. keepalive高可用
  8. 1.4补充 三态缓存(tristate buffer)与 多路复用器(Multiplexers)
  9. [置顶]       javascript中的数组对象以及json学习笔记
  10. ORACLE RMAN备份--差异增量与累积增量的策略实例图