翻译: Octave 入门教程
说明
吴恩达老师的课程介绍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
命令可用于打印输出的任何地方。使用exit
或quit
退出控制台。
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 入门教程相关推荐
- 微服务网关:SpringCloud Gateway保姆级入门教程
什么是微服务网关 SpringCloud Gateway是Spring全家桶中一个比较新的项目,Spring社区是这么介绍它的: 该项目借助Spring WebFlux的能力,打造了一个API网关.旨 ...
- 什么是微服务网关?SpringCloud Gateway保姆级入门教程
什么是微服务网关 SpringCloud Gateway是Spring全家桶中一个比较新的项目,Spring社区是这么介绍它的: 该项目借助Spring WebFlux的能力,打造了一个API网关.旨 ...
- db4o官方入门教程翻译--06.集合和数组
.Net方向的关于使用db4o的资料很少,硬着头皮看官方的英文版入门教程.由于英文不太好比较费劲,感觉一定有朋友会遇到相同的问题.所以想将入门教程做一个简单的翻译,水平有限,不太明白的地方可以对照英文 ...
- Hyperledger Fabric 官网翻译入门教程--之关键概念(Hyperledger Fabric 模型)
英文地址:http://hyperledger-fabric.readthedocs.io/en/latest/fabric_model.html Hyperledger Fabric Model/ ...
- 关于 MATLAB2019 快速入门教程(官方手册翻译)的几点说明
4月份的两则博文: MATLAB2019 快速入门教程(官方手册翻译)(1/4) MATLAB2019 快速入门教程(官方手册翻译)(2/4) 是写在我尚未找到 MATLAB 中文文档时翻译的,现在我 ...
- Python3数据分析——NumPy快速入门教程(官网教程翻译)
目录 一.基础篇 1.创建数组 2.打印数组 3.基本运算 4.通用函数(ufunc) 5.索引,切片和迭代 二.形状操作 1.更改数组的形状 2.组合(stack)不同的数组 3.将一个数组分割(s ...
- Kafka入门教程与详解
1 Kafka入门教程 1.1 消息队列(Message Queue) Message Queue消息传送系统提供传送服务.消息传送依赖于大量支持组件,这些组件负责处理连接服务.消息的路由和传送.持久 ...
- 超强、超详细Redis数据库入门教程
这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么 2.redis的作者何许人也 3.谁在使用r ...
- Linux大棚版redis入门教程
后端开发过程中,有时需要考虑系统的实时性,那么缓存系统就派上用场了,当然,现在最常用的当属Redis,这篇文章转自 Linux大棚版redis入门教程 [本教程目录] redis是什么 redis的作 ...
- python使用教程pandas-十分钟搞定pandas(入门教程)
本文是对pandas官方网站上<10Minutes to pandas>的一个简单的翻译,原文在这里.这篇文章是对pandas的一个简单的介绍,详细的介绍请参考:Cookbook .习惯上 ...
最新文章
- 南大电子机器人入驻云南_云南大学外语协会 英文歌曲演唱比赛
- Python基础教程(二):基础语法、变量类型
- 怎么把分钟转化成秒_怎么利用抖音短视频引流,手把手教你如何玩转抖音流量...
- Cacheable注解使用详解
- easyui源码翻译1.32--ValidateBox(验证框)
- Linux Ubuntu 安装编译Opencv 3.4.3 C++开发环境
- oracle12c 删除pdb用户,oracle 12c pdb测试:创建、开关、删除
- [洛谷P4052][JSOI2007]文本生成器
- 还在花钱买课呢?教你白嫖开放注册图书馆价值上万元的学习资源
- 农场游戏开发记录十二
- UI自动化之-使用DD_XOFT实现带有安全控件、U盾的输入
- iWebOffice使用VBA控制字体
- 单片机、嵌入式ARM学习网站推荐(多年的积累)
- Vue3源码-Proxy
- 如何推广自己的新网站
- PCM开发板模块实验指导--无刷马达实验
- 教你如何在vue-cli项目打包时避免踩雷(一)【早看早受益】
- Python 脚本帮你找出微信上删除了你的“好友“
- win10无法访问共享解决办法
- Win10桌面一刷新就卡死
热门文章
- oracle序列不连续,Oracle不连续的值,如何实现查找上一条、下一条
- python求偏度系数_python pandas库和stats库计算偏度和峰度(附程序)
- java无法启动安装程序,Windows Fix中无法启动Java更新安装程序错误
- vue-cli3 处理静态文件 下载引用
- 【转】响应式布局和自适应布局详解
- ul列表中包含input时line-height属性失效的解决办法
- keepalive高可用
- 1.4补充 三态缓存(tristate buffer)与 多路复用器(Multiplexers)
- [置顶] javascript中的数组对象以及json学习笔记
- ORACLE RMAN备份--差异增量与累积增量的策略实例图