Ng第五课:Octave 教程(Octave Tutorial)
5.1 基本操作
5.2 对数据进行灵活操作
5.3 计算数据
5.4 数据可视化
5.5 控制语句和函数
5.6 矢量化
官网安装:Installation
在线文档:http://www.gnu.org/software/octave/doc/interpreter/
5.1 基本操作
算术运算,逻辑运算 #%用于注释
ps1('>> ');可以改变提示符的样子 #注意分号
变量赋值 #加上分号后不直接打印出来,不加分号可以直接打印出来
disp()和sprintf()用于打印显示变量,两者可结合使用格式输出。format可以使接下来打印的结果格式发生改变。
创建矩阵或向量
第一个例子是创建列向量
第二三个例子是有无步长创建横向量
创建全为1、全为0的矩阵,创建随机数矩阵
hist是用直方图形式显示各范围元素的个数,如:
用hist显示为,其中hist(w,a),a表示把直方图分为a份。
创建单位矩阵
5.2对数据进行灵活操作
——数据的各种可能的操作方式
计算矩阵维度、第一个维度、第二个维度,最大维度:
pwd显示当前工作目录,cd '.....'切换工作目录,ls列出当前目录中文件
加载文件、查看变量、查看详细变量信息 #load X和load('X')的作用一致
clear删除所有的变量,clear变量名删除某一个变量
priceY(m:n)表示取向量的第m个元素到第n个元素进行赋值 #对于矩阵来说,元素编号是从上到下,从左向右依次编号
将矩阵数据存储到文件中,保存为文本格式,.dat格式也可以
对矩阵进行切片索引和拓展

奇特的将第一和三行的所有元素进行切片显示
创建后的赋值方式
将矩阵所有元素依次放入一个向量中
组合矩阵
5.3数据运算
A*C:A与C矩阵正常相乘
A .* B:两个矩阵中的每个对应位置的元素相乘
A .^ 2:对矩阵每个元素进行平方
1./A:对A的每个元素进行除法,这里是每个元素取倒
log(A):以e为底,对每个元素求log
exp(A):以e的A中每个元素为幂的结果
abs(A):对A的每个元素求绝对值
-A:对A的每个元素求负数
v+1:对v中每个元素都加1
A‘:矩阵A的转置
pinv():求矩阵逆
max(v):向量v中最大的元素,矩阵的含义有点不同,得到包含了来自各列的最大元素组成的行向量
A<3:对每个元素都进行比较,得到的结果为1或者0
find(A<3):得到一个向量,列出相应小于3的元素的索引
magic(n):生成nxn的矩阵,每行每列每个对角线得到的和相同
sum:将矩阵所有元素进行相加
prod:将数组元素全部相乘,如果是矩阵,则是对每一列看作向量进行相乘,得到向量
floor:对每个元素向下取整
ceil:对每个元素向上取整
5.4 数据可视化
对变量t进行赋值,构造正弦函数,然后作图:
xlabel对x轴命名,legend对每条线进行说明,title追加名字,print保存图像到本地
代码第1行关闭图像,23行对图像命名,4567行将一张图分为两部分呈现第1部分,第8行分别设置x轴和y轴的范围,clf清除现有图像中的内容
之后是用imagesc对矩阵进行可视化
5.5 控制语句和函数
for循环语句的例子
while循环例子 #习惯于循环后打逗号,代码有缩进便于阅读,用end表示代码的结束,分号和写c相似
if语句的例子,和c完全一致 #使用quit或者exit可以使matlab退出
用wordpad自定义一个函数
切换到路径下,或者用addpath加入搜索路径,可以使用自定义函数。
注:自定义函数的用法,必须创建.m文件,且文件名和函数名称必须一致。
EXP下面举个计算成本函数的例子,有这样一个数据集合,计算他的成本函数
首先输入数据集合
然后输入自定义函数
直接计算结果
5.6 向量化
本节讲解如何使用计算机和软件自带的库来加速运算。将大量数据向量化,使用矩阵工具进行运算,可以借助机器大大加快处理速度。
EXP举一个数据向量化的例子,对于图中的运算,可以抽象为两个向量。如果不用矩阵,直接运算的话,程序如下图左所示。用矩阵则如图右所示,更简单。
以上图中的运算为例子,如何快速的同步运算thelta,如何向量化,加速运算
分解成各部分然后变成向量
Ng第五课:Octave 教程(Octave Tutorial)的更多相关文章
- 斯坦福第五课:Octave 教程(Octave Tutorial)
5.1 基本操作 5.2 移动数据 5.3 计算数据 5.4 绘图数据 5.5 控制语句:for,while,if 语句 5.6 矢量化 5.7 工作和提交的编程练习 5.1 基本操作
- Octave Tutorial(《Machine Learning》)之第五课《控制语句和方程及向量化》
第五课 控制语句和方程 For,while,if statements and functions (1)For loop v=zeros(10,1) %initial vectors for i=1 ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 5 Octave Tutorial
Lecture 5 Octave教程 5.1 基本操作 Basic Operations 5.2 移动数据 Moving Data Around 5.3 计算数据 Computing on Data ...
- NeHe OpenGL教程 第四十五课:顶点缓存
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- Adafruit的树莓派教程第五课:使用控制电缆
Adafruit的树莓派教程第五课:使用控制电缆 时间 2014-05-09 01:11:20 极客范 原文 http://www.geekfan.net/9095/ 主题 Raspberry PiM ...
- NeHe OpenGL教程 第三十五课:播放AVI
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- NeHe OpenGL教程 第二十五课:变形
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- NeHe OpenGL教程 第十五课:纹理图形字
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- NeHe OpenGL教程 第五课:3D空间
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
随机推荐
- Razor 模板引擎的使用
安装Razor的模板引擎,通过vs的“扩展管理器”,查找"RazorEngine"并安装.安装的dll包括”RazorEngine.dll“和”System.Web.Razor.d ...
- 微信公众号H5支付步骤
微信公众平台:https://mp.weixin.qq.com/ 进入 微信支付 管理>开通支付功能. 微信支付|商户平台: 设置安全目录:https://pay.weixin.qq.com/i ...
- vue缓存之keep-alive,设置想要缓存的页面
由于项目需求从a页面跳转到b页面,返回a页面,a页面数据不能被刷新掉,方法很多列举12 方法1 a页面通过学期按钮切换学期,该学期里more进入b页面,返回a页面,返回回到对应a页面进入的高亮按钮设置 ...
- react-router4 第一篇
无奈,英语4级没过,只能靠猜了.. 首先就是安装了 npm install --save-dev react npm install --save-dev react-dom npm install ...
- c#Md5 32位加密结果少了两个0的原因
今天碰到一个问题, md5加密之后与网站上md5加密少了两位, 仔细看区别是少了两个零 E1ADC3949BA59ABBE56E057F2F883E 我的md5 E10ADC3949BA59AB ...
- eigen Matrix详解
Eigen Matrix 详解 在Eigen中,所有的matrices 和vectors 都是模板类Matrix 的对象,Vectors 只是一种特殊的矩阵,行或者列为1. Matrix的前三个模板参 ...
- Win32消息循环机制等【转载】http://blog.csdn.net/u013777351/article/details/49522219
Dos的过程驱动与Windows的事件驱动 在讲本程序的消息循环之前,我想先谈一下Dos与Windows驱动机制的区别: DOS程序主要使用顺序的,过程驱动的程序设计方法.顺序的,过程驱动的程序有一个 ...
- memcached 一致性hash原理
memcache 是一个分布式的缓存系统,但是本身没有提供集群功能,在大型应用的情况下容易成为瓶颈.但是客户端这个时候可以自由扩展,分两阶段实现.第一阶段:key 要先根据一定的算法映射到一台memc ...
- javascript 高级程序设计 十
理解JS对象(2)创建对象 JS中创建对象的方式有很多,我们把他们统称为模式. 工厂模式: 优点:解决了创建多个相似对象的问题. 缺点:没有解决对象识别问题.(不知道一个实例对象的类型) func ...
- TortoiseSVN Project Monitor使用
今天下载了TortoiseSVN Project Monitor,要把一个项目导入 name一直没有输入,一直导入不成功,点击了ok也不给提示,切记要写项目Name啊! 在使用svncheckout时 ...