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的下面
  1. 计算数据
  • 取反:
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
  1. 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基本语法相关推荐

  1. 开源数值计算软件OCTAVE 、SCILAB、R、Matlab简介

    R软件介绍 R是属于GNU系统的一个自由.免费.源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具. R是S语言的一种实现.S语言是由AT&T贝尔实验室开发的一种用来进行数据探索.统计 ...

  2. 斯坦福大学吴恩达机器学习教程中文笔记——week2——多变量线性回归,octave教程

    第2周 文章目录 第2周 @[toc] 四.多变量线性回归(Linear Regression with Multiple Variables) 4.1 多维特征 4.2 多变量梯度下降 4.3 梯度 ...

  3. 吴恩达机器学习系列课程笔记——第五章:Octave教程(Octave Tutorial)

    提示:这章选学,可以去学python,第六节可以看看. 5.1 基本操作 https://www.bilibili.com/video/BV164411b7dx?p=26 本章学习以种编程语言:Oct ...

  4. Chapter5:Octave教程:AndrewNg吴恩达《机器学习》笔记

    文章目录 Chapter 5 : Octave 教程 5.1 基本操作 5.2 移动数据 5.3 计算数据 5.4 绘图数据 5.5 控制语句:for,while,if语句 5.6 向量化 5.7 工 ...

  5. coursera机器学习第二周编程作业

    首先下载需要的文档.下面是文档的翻译(英语新手纯手工goole翻译)(来源coursera). 编程练习1:线性回归 机器学习 介绍 在这个练习中,你将实现线性回归,并看到它在数据上的工作.在开始编程 ...

  6. 机器学习 入门笔记(1)

    机器学习笔记(1) Octave 绘制函数常用函数 绘制函数plot(x,y,'color') x 为横坐标 Y为纵坐标变量 holdon() 上次图片不刷新 继续绘制 xlabl('label') ...

  7. 帮你提升 Python 的 27 种编程语言

     作者是Python的设计者之一Nick Coghlan,总结了提升Python的27种编程语言,包括过程式编程.面向对象的数据模型.面向对象的C语言衍生等. [编者按]本文作者是 Python ...

  8. Coursera吴恩达机器学习课程-第五章

    五.Octave教程(Octave Tutorial) 5.1 基本操作 参考视频: 5 - 1 - Basic Operations (14 min).mkv 在这段视频中,我将教你一种编程语言:O ...

  9. 吴恩达-coursera-机器学习-week2

    四.多变量线性回归(Linear Regression with Multiple Variables) 4.1 多维特征 4.2 多变量梯度下降 4.3 梯度下降法实践1-特征缩放 4.4 梯度下降 ...

最新文章

  1. 1578: [Usaco2009 Feb]Stock Market 股票市场
  2. form实现登陆操作
  3. 键盘码 ascii码
  4. 【c语言】求n个整数的和
  5. 硕士本科论文通过matlab出仿真图
  6. python的groupby中函数详解_python groupby函数用法
  7. 头文件(C++11)、从文件输入输出
  8. 追一科技热招职位来袭:AI新世界,不做旁观者
  9. [html] 写H5和小程序有什么相同及不同的地方吗?
  10. 【笔记3】二维码扫码数据埋点
  11. Linux 内核101:[译]地址空间发展简史
  12. 游戏开发之测试篇3(C++)
  13. thinkpad重装系统不引导_不重装系统修改引导方式为UEFI模式
  14. 横向合计代码 锐浪报表_巧用锐浪报表:用报表脚本实现动态显示小数位数
  15. 论文阅读《FSCE: Few-Shot Object Detection via Contrastive Proposal Encoding》
  16. SMT贴片相关知识梳理
  17. 2019利兹大学计算机排名,2019软科世界大学学术排名利兹大学排名第101-150
  18. 【渝粤教育】电大中专跨境电子商务理论与实务 (17)作业 题库
  19. Python爬取6271家死亡公司数据,一眼看尽十年创业公司消亡史!
  20. 导师一般会帮自己的博士生推荐工作吗?

热门文章

  1. [精简]什么是主音?
  2. 申请3C产品认证的流程及资料解读(简化版)
  3. 2021年安徽省大数据与人工智能竞赛人工智能现场赛2和3题
  4. 基于test log的自动结果分析
  5. dell 如何给raid分区_DELL服务器RAID配置详细教程
  6. 多谐振荡器双闪灯电路分析
  7. 营销技术(Martech)的持续爆炸式增长,市场总监的工作变得更加艰难
  8. 什么是DeFi流动性资金池
  9. 淘宝API开发系列:淘宝图片搜索API / item_search_img-按图搜索淘宝商品(拍立淘)/图片搜索API调用值说明
  10. NLP实战 | 使用《人民的名义》的小说原文训练一个word2vec模型