Octave基本语法
Operations:
相比于其它的语言如 NumPy ,Octave用于数学运算方面,的确好使!
一行更比六行强?
- ~= 不等于符号
- && 与 操作符
- || 或 操作符
- Xor(1,0) = 1 或操作符
- % 表示注释,类似于#
- Disp() 表示打印
- 按照步长建立数组:
octave:9> V = 1:0.1:2
V =
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000 2.0000octave:18> V = 1:6
V =1 2 3 4 5 6
%与其它编程语言不大一样的一点在于步长项在中间,这样子的确比较好理解;
%与其它的编程语言一样,步长这一项是可以忽略的,但是这样一下子把中间项给忽略了,就比较难受
- Ones():
可用于快速生成矩阵,默认值为1
octave:19> ones(2,3)
ans =1 1 11 1 1octave:20> 2*ones(2,3)
ans =2 2 22 2 2
- Zeros():
可用于快速生成矩阵,默认值为0
octave:21> zeros(2,3)
ans =0 0 00 0 0
- Rand():
用于快速生成矩阵,值为0—1的小数
octave:22> rand(2,3)
ans =0.089023 0.089996 0.1087330.808496 0.961550 0.508956%如果我们给只出一个参数,那么它会自动生成一个n*n 的一个矩阵
octave:1> rand(3)
ans =0.65676 0.64577 0.534420.11735 0.23649 0.455170.70716 0.46710 0.84682
- Randn():
octave:26> w = -6 + sqrt(10)*(randn(3,2)) %生成一个以-6为均值的10为方差的3*2矩阵
w =-1.6360 -3.2193-3.5828 -3.4949-5.7931 -11.9905
- hist():
用于绘制直方图
octave:24> hist(w)
- Eye():
用于绘制单位向量
octave:28> eye(3)
ans =
Diagonal Matrix1 0 00 1 00 0 1
- Pwd:
显示当前所在路径 - Who:
显示所有的变量
octave:32> who
Variables in the current scope:
A B C V a ans w
- Whos:
显示出当前变量更加详细的信息
octave:35> whos
Variables in the current scope:Attr Name Size Bytes Class==== ==== ==== ===== =====A 3x2 48 doubleB 2x3 48 doubleC 1x3 24 doubleV 1x6 24 doublea 1x1 8 doubleans 1x1 8 doublew 3x2 48 doubleTotal is 29 elements using 208 bytes
移动数据
- Size():
以数组的形式显示出当前变量的维度
octave:33> size(A)
ans =3 2
同时外面还可以索引出相应的维度数
octave:34> size(A,1)
ans = 3
- Clear:
octave:36> clear(A)
error: clear: all arguments must be stringsoctave:36> clear Aclear %这将会删除所有的变量
- 索引赋值:
B =2 2 22 2 2
octave:40> D = B(1:2)
D =
2 2
- Save 存储数据:
octave:41> D = eye(3)
D =
Diagonal Matrix1 0 00 1 00 0 1
octave:42> save hello.mat D
- Load 加载数据:
octave:46> load hello.mat D
octave:47> D
D =
Diagonal Matrix1 0 00 1 00 0 1
octave:48> clear D
octave:49> load hello.mat A
error: load: empty name keyword or no data found in file 'hello.mat
%可以看出,就算是重新加载文件也不能随便的乱赋值的octave:53> save hello.txt D -ascii
%此命令使得文件以可见的形式进行存储了
- 索引:
octave:54> A = [1 2 ; 3 4 ;5 6]
A =1 23 45 6
octave:55> A(3,2)
ans = 6% :代表一行或者一列
octave:56> A(:,2)
ans =246
octave:57> A(3,:)
ans =5 6%高级用法,取出第1,3行的所有数据octave:59> A([1 3],:)
ans =1 25 6%在矩阵的右面再加一列的操作octave:61> A = [A,[30;40;50]]
A =1 10 303 11 405 12 50%赋值给索引,实现列数增加,这种方法比较好理解octave:60> A(:,2) = [10,11,12]
A =1 103 115 12
将矩阵转化成向量
octave:62> A(:)
ans =135101112304050
- 矩阵的结合:
C = [A B] %将B拼在A的右面
C = [A,B] %将B拼在A的右面(这样比较好理解)
C = [A ; B] %将B拼在A的下面
- 计算数据
- 取反:
octave:64> -A
ans =-1 -10 -30-3 -11 -40-5 -12 -50
- abs():
octave:67> abs(-A)
ans =1 10 303 11 405 12 50
- Log():
octave:65> log(A)
ans =0.00000 2.30259 3.401201.09861 2.39790 3.688881.60944 2.48491 3.91202
- 如何让每一个元素都+2:
octave:69> A + 2*ones(size(A,1),size(A,2))
ans =3 12 325 13 427 14 52octave:71> A+2
ans =3 12 325 13 427 14 52
- 矩阵的转置:
octave:72> A'
ans =1 3 510 11 1230 40 50
octave:73> (A')'
ans =1 10 303 11 405 12 50
- 获取矩阵的最大值:
octave:76> B = A(:)
B =135101112304050
octave:77> [val,ind] = max(B)
val = 50 %第一位表示的是最大值
ind = 9 %第二位表示的是最大值所在列的位置%如果是取矩阵的最大值,那么实际上是得到每一列的最大值
octave:78> max(A)
ans =5 12 50
- 矩阵判断:如果真返回1,假返回0
octave:80> A<12
ans =1 1 01 1 01 0 0
- Magic幻方:
octave:83> B = magic(3)
B =8 1 63 5 74 9 2
- Find()返回:
%可以看出实际上(r,c)代表find到的数的坐标
octave:85> [r,c]=find(A<12)
r =12312
c =11122
- Sum()求和:
%可以看出实际上是返回的各列的和
octave:87> sum(A)
ans =9 33 120
- Prod()乘积:
%可以看出实际上是返回的各列的乘积
octave:88> prod(A)
ans =15 1320 60000
- Floor()向下取整:
octave:89> A+0.5
ans =1.5000 10.5000 30.50003.5000 11.5000 40.50005.5000 12.5000 50.5000
octave:90> floor(A)
ans =1 10 303 11 405 12 50
- Ceil()向上取整:
octave:94> ceil(A)
ans =2 11 314 12 416 13 51
- Pinv()求逆矩阵:
octave:15> pinv(b)
ans =0.147222 -0.144444 0.063889-0.061111 0.022222 0.105556-0.019444 0.188889 -0.102778
- Plotting data
- 绘制正弦与余弦函数实例
octave:24> t = [0:0.01:0.98]; %生成横坐标
octave:25> y1 = sin(2*pi*4*t); %正弦函数
octave:26> y2 = cos(2*pi*4*t); %余弦函数
octave:27> plot(t,y1); %绘图
octave:28> hold on; %在原图像基础上进行绘图
octave:29> plot(t,y2,'r'); %绘制余弦函数图像并设置颜色为红色
octave:30> xlabel('time') %设置x轴标签为time
octave:31> ylabel('value') %设置y轴标签为value
octave:32> legend('sin','cos') %为图像添加标记
octave:34> title('My Plot') %设置图像的标题
octave:35> pwd %查看当前的目录
ans = C:\Users\浜庢捣娲
octave:36> cd 'E:\AI' %更改目录
octave:37> pwd
ans = E:\AI
octave:39> print -dpng 'My Plot.png' %以png的形式存储图片
octave:43> figure(1):plot(t,y1)
ans = [](1x0)
octave:44> figure(2):plot(t,y2) %可以实现同时绘制两个图
ans = [](1x0)
octave:45> figure(yo):plot(t,y2) %另外()里面需要数字
error: 'yo' undefined near line 1 column 8octave:46> subplot(1,2,1) %把显示窗口分为1*2 的样式,取第一块
octave:47> plot(t,y1) %绘制正弦图
octave:48> subplot(1,2,2) %把显示窗口分为1*2 的样式,取第二块
octave:49> plot(t,y2,'r') %绘制余弦图
octave:50> axis([0.5 1 -1 1]) %修改x,y轴的刻度
- 同时执行多条语句
octave:52> a=1,b=3 %同时执行多条语句,并展示
a = 1
b = 3
octave:53> a=1;b=3
b = 3
octave:54> a=1;b=3; %同时执行多条语句,不展示
octave:55> a=1,b=3;
a = 1
%可以看出后面带了分号就不会展示了
Octave基本语法相关推荐
- 开源数值计算软件OCTAVE 、SCILAB、R、Matlab简介
R软件介绍 R是属于GNU系统的一个自由.免费.源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具. R是S语言的一种实现.S语言是由AT&T贝尔实验室开发的一种用来进行数据探索.统计 ...
- 斯坦福大学吴恩达机器学习教程中文笔记——week2——多变量线性回归,octave教程
第2周 文章目录 第2周 @[toc] 四.多变量线性回归(Linear Regression with Multiple Variables) 4.1 多维特征 4.2 多变量梯度下降 4.3 梯度 ...
- 吴恩达机器学习系列课程笔记——第五章:Octave教程(Octave Tutorial)
提示:这章选学,可以去学python,第六节可以看看. 5.1 基本操作 https://www.bilibili.com/video/BV164411b7dx?p=26 本章学习以种编程语言:Oct ...
- Chapter5:Octave教程:AndrewNg吴恩达《机器学习》笔记
文章目录 Chapter 5 : Octave 教程 5.1 基本操作 5.2 移动数据 5.3 计算数据 5.4 绘图数据 5.5 控制语句:for,while,if语句 5.6 向量化 5.7 工 ...
- coursera机器学习第二周编程作业
首先下载需要的文档.下面是文档的翻译(英语新手纯手工goole翻译)(来源coursera). 编程练习1:线性回归 机器学习 介绍 在这个练习中,你将实现线性回归,并看到它在数据上的工作.在开始编程 ...
- 机器学习 入门笔记(1)
机器学习笔记(1) Octave 绘制函数常用函数 绘制函数plot(x,y,'color') x 为横坐标 Y为纵坐标变量 holdon() 上次图片不刷新 继续绘制 xlabl('label') ...
- 帮你提升 Python 的 27 种编程语言
作者是Python的设计者之一Nick Coghlan,总结了提升Python的27种编程语言,包括过程式编程.面向对象的数据模型.面向对象的C语言衍生等. [编者按]本文作者是 Python ...
- Coursera吴恩达机器学习课程-第五章
五.Octave教程(Octave Tutorial) 5.1 基本操作 参考视频: 5 - 1 - Basic Operations (14 min).mkv 在这段视频中,我将教你一种编程语言:O ...
- 吴恩达-coursera-机器学习-week2
四.多变量线性回归(Linear Regression with Multiple Variables) 4.1 多维特征 4.2 多变量梯度下降 4.3 梯度下降法实践1-特征缩放 4.4 梯度下降 ...
最新文章
- 1578: [Usaco2009 Feb]Stock Market 股票市场
- form实现登陆操作
- 键盘码 ascii码
- 【c语言】求n个整数的和
- 硕士本科论文通过matlab出仿真图
- python的groupby中函数详解_python groupby函数用法
- 头文件(C++11)、从文件输入输出
- 追一科技热招职位来袭:AI新世界,不做旁观者
- [html] 写H5和小程序有什么相同及不同的地方吗?
- 【笔记3】二维码扫码数据埋点
- Linux 内核101:[译]地址空间发展简史
- 游戏开发之测试篇3(C++)
- thinkpad重装系统不引导_不重装系统修改引导方式为UEFI模式
- 横向合计代码 锐浪报表_巧用锐浪报表:用报表脚本实现动态显示小数位数
- 论文阅读《FSCE: Few-Shot Object Detection via Contrastive Proposal Encoding》
- SMT贴片相关知识梳理
- 2019利兹大学计算机排名,2019软科世界大学学术排名利兹大学排名第101-150
- 【渝粤教育】电大中专跨境电子商务理论与实务 (17)作业 题库
- Python爬取6271家死亡公司数据,一眼看尽十年创业公司消亡史!
- 导师一般会帮自己的博士生推荐工作吗?
热门文章
- [精简]什么是主音?
- 申请3C产品认证的流程及资料解读(简化版)
- 2021年安徽省大数据与人工智能竞赛人工智能现场赛2和3题
- 基于test log的自动结果分析
- dell 如何给raid分区_DELL服务器RAID配置详细教程
- 多谐振荡器双闪灯电路分析
- 营销技术(Martech)的持续爆炸式增长,市场总监的工作变得更加艰难
- 什么是DeFi流动性资金池
- 淘宝API开发系列:淘宝图片搜索API / item_search_img-按图搜索淘宝商品(拍立淘)/图片搜索API调用值说明
- NLP实战 | 使用《人民的名义》的小说原文训练一个word2vec模型