机器学习入门四

news/2024/4/29 13:08:44/文章来源:https://blog.csdn.net/qq_43967413/article/details/126930904

  • Octave相关资源
    • 官网地址
    • 下载地址
  • 相关语法
    • 运算符
    • 变量
    • 函数
    • 系统命令
    • 数据操作
      • 数据加载
      • 数据保存
    • 元素操作
    • 元素计算
  • 绘图和可视化工具
    • 绘图实例
    • 常用函数
  • 控制语句

Octave相关资源

官网地址

官方地址

下载地址

下载地址

相关语法

运算符

  • %:注释
  • ~=:表示不等于
  • xor:异或
  • 其他逻辑运算符类似C语言

变量

  • 字符串:c = ‘hello world’
  • 布尔值:c = (3>=1)
  • 整数:c = 3
  • 圆周率:pi

函数

  • disp():打印

  • sprintf(‘decimals: %0.2f’, a):格式化字符串

  • format的使用可以让数字等显示出具体的位数,具体看format的参数 在这里插入图片描述

  • 矩阵建立以空格和分号分割,分号的作用相当于换行在这里插入图片描述

  • 向量的循环产生:v = 1:1:4,以冒号分割,表示从1开始,步长是1,最后达到4在这里插入图片描述

  • 等差向量产生:例如产生1到6:v=1:6在这里插入图片描述

  • 产生全是1的特定矩阵,ones(2,3)表示生成2*3的全部是1的矩阵在这里插入图片描述

  • zeros(10,1):生成10行一列的全为0的向量
    在这里插入图片描述

  • 上述生成全是特定某个数的,只需要做乘法运算就行了,例如生成全是2的矩阵:2*ones(2,3)在这里插入图片描述

  • rand(1,3):随机生成1行3列的随机数字的矩阵,并且数字都介于0到1之间

  • randn(1,3):随机生成符合高斯分布的数值(正态分布值),randn(1,3)表示随机生成3个数字,也就是1行3列的三个数,这几个数符合高斯分布,也就是他们的均值是0或者方差为1

  • sqrt(4):开根

  • hist(矩阵):绘制矩阵的直方图,例如hist(randn(1,10000)),并且可以通过添加参数绘制更多的竖条hist(randn(1,10000), 50),通过第二个参数设置竖条的数量(前提是你有那么多个量)
    在这里插入图片描述

在这里插入图片描述

  • eye(4):单位矩阵生成,eye(4)表示生成一个4*4的单位矩阵
  • help 函数名:查看那个帮助
  • size(矩阵):返回矩阵的尺寸,返回值是一个行向量,其格式为:行数 列数
    • size(矩阵, 1):获取矩阵的维度,也就是行数
    • size(矩阵, 2):矩阵的列数
  • length(矩阵):获取最大维度的大小,例如23的矩阵,最大的是列数,而矩阵42,最大的是行数,所以返回4

系统命令

  • pwd:查看当前路径
  • cd 路径:目录切换
  • ls:列表
  • load 文件名或者是load(文件名):加载具体的文件,如load formatX.dat
  • who:显示Octave中当前存储在内存所有的变量名,包括我们自己创建的变量名
  • whos:显示更详细的变量信息
  • clear 变量名:清除变量,如何不添加变量名,那么就清除全部

数据操作

数据加载

例如我们通过load priceY.dat添加了一个训练集,其中训练集里边是一个一列的数据
在这里插入图片描述

被加载到Octave中以后对应的变量名是文件名,也就是priceY,那么拿到priceY前10个元素并赋给v,进行的操作是:v = priceY(1:10),其中如果文件按列排布,那只会拿到第一列的前10个,如果按行排布,那就会拿到一行的前10个,并且只针对列向量和行向量,其他可能报错
在这里插入图片描述

数据保存

通过save 文件名 变量名,例如:save hello.mat v,表示将v存储到文件hello.mat中。下一次通过load hello.mat,就会重新拿到数据,并且数据依旧存储在变量v中

保存到mat后缀的文件中,是将数据转成具体的二进制形式,这样的话变量v越大,压缩的程度越大

同样可以保存成其他格式,例如txt:save hello.txt v -ascii,表示保存为hello.txt并且是ascii编码方式

元素操作

  • 拿到某个元素:a(1,2):其中a是矩阵对应的向量名,通过a(1,2)这个索引拿到第一行第二列的元素

  • 拿到某一列或者某一行:只需要填入对应的行数或者列数,然后另一个设置为:,例如获取第二行:a(2, 😃

  • 拿到多行多列或者多个元素:a([1 3],[1 2]):表示拿1和3行的各自的1和2列元素。a([1 3],1):1和3行的1列元素。a([1 3]😅:1和3行的整行元素

  • 整列修改:上述a(:, 2)表示拿到第2列的数,但是可以通过a(:, 2)赋值新的列去整列修改,并返回新矩阵在这里插入图片描述

  • 快捷添加列:可以直接整体套入在这里插入图片描述

  • 将矩阵的所有元素输出整合到一列上:a(😃,该方法按列进行打印的,如下图在这里插入图片描述

  • 快速整合矩阵:A = [B C]或者A=[B;C],其中B和C是两个矩阵

元素计算

  • A*B:矩阵相乘

  • A .* C:通过 .* 运算符实现矩阵A和C中点对点的相乘,就是对应位置的数相乘,所以两个矩阵必须相同结构

  • A .^ 2:会对矩阵A中每个元素都进行平方,后边的数可以是任意的实数

  • 1 ./ A:表示获得矩阵A对应的导数,数字可以是任意的实数

  • log(A):对A中所有元素都进行对数运算

  • exp(A):表示对A中所有元素进行以e为底的对数运算

  • abs(A):所有元素取绝对值

  • -A:A中元素全部变成负数

  • A+1:可以对A中每个元素都加1

  • A’:求A的转置

  • max(A):求A中值最大的元素,如果A不是向量,那么就返回每一列最大的元素

  • [val index]=max(A):返回的元素中第一个参数是元素的值,第二个参数是元素的索引,对于向量而言可以拿到对应的的值以及下标,但是对于非向量而言,就是拿到每一列的最大值,索引是对应的最大值艘所在的行在这里插入图片描述在这里插入图片描述

  • A < 3:表示A中每个元素和3比较,返回一个矩阵,1表示成立,0表示不成立在这里插入图片描述

  • find(A<3):表示在A中找到符合条件的元素并返回它的索引,对于非向量而言,他会自动从第一行第一个开始按第1列…第2列…第n列的顺序返回索引,如下a将会被转换成1 8 1 9 9 2,符合条件的就是在1 3 6这三个位置的数在这里插入图片描述

  • [r, c] = find(A<3):可以找到具体的行列号,r是行相关的向量,c是列相关的向量,如下返回值中,对应位置就是元素存在于对应的行列号在这里插入图片描述

  • magic(3):生成一个幻方矩阵,也就是一个对角线、行、列上的数相加都等于同一个数的矩阵,其中传入的数字表示维度,3也就是表示3*3

  • sum(A):求A中所有元素的值的总和,如果不是向量,默认就会返回每一列的总和的行向量在这里插入图片描述

  • sum(a,2):计算每一行的元素的总和在这里插入图片描述

  • prod(A):表示A元素中所有元素的乘积

  • floor(A):表示A中的值向下取整

  • ceil(A):表示A中的值向上取整

  • max(A,B):其中A、B是对应的矩阵,max(A,B)返回了由A,B矩阵中对应位置的最大的元素组成在这里插入图片描述

  • max(A,[], 1):最后一个数值如果是1,那么就拿到每一列的最大值,如果最后一行是2,那么就拿到每一列的最大值在这里插入图片描述

  • 主对角线上的数之和:sum(sum(A . eye(A矩阵的维度)))*:eye产生一个单位矩阵,根据A的维度产生单位矩阵后,再继续与A进行点对点相乘,最终得到了A矩阵中对角线上的元素,在通过sum可以拿到每一列的值,这个时候相当于把对角线上的元素整合成行向量,外层的sum就再次将这个原来由对角线元素组成的元素求和,最终得到了对角线上的元素的总和

  • flipud(A):对A进行垂直翻转,也就是从上向下或者从下向上180°翻转

  • 副对角线的数之和:sum(sum(A . flipud(eye(A矩阵的维度))))*

绘图和可视化工具

绘图实例

绘图实例:首先是产生一个t相关的数组t = [0:0.1:5],这里表示从0开始步长是0.1,增加到5,通过sin函数得到y,并添加变量t,然后通过plot函数:plot(t,y),第一个参数是自变量,第二个参数是因变量,最终绘制下图
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

常用函数

  • sin()
  • cos()
  • plot(x轴变量,y轴变量):绘制一般的图像
  • plot(x轴变量,y轴变量,‘r’):绘制一般的图像,添加了第三个参数,表示添加了相应的颜色值
  • hold on:因为plot函数没有特别配置的情况下只有一个图像显示,每次执行一次plot只会出现一个函数图像,需要维持多个图像可以使用hold on
    在这里插入图片描述

在这里插入图片描述

  • xlabel(‘time’):添加x轴描述
    在这里插入图片描述

  • ylabel(‘value’):添加y轴描述

  • legend(第一条线的描述,第二条线的描述…):添加线描述,从左到右是对添加顺序的三条线进行添加相应的描述

  • title(标题名称):通过title函数添加标题描述

  • print -dpng ‘myplot.png’:将图像保存到当前路径下并且命名为myplot.png

  • close:关闭图像
    在这里插入图片描述

  • figure(1): plot(t,y1):使用figure进行标识哪个图被绘制了,从而打开多个窗口进行图片绘制

  • subplot(1,2,1):前两个参数表示1*2的格子,也就是一行2个格子,最后一个格子表示当前使用的格子是第1个
    在这里插入图片描述
    在这里插入图片描述

  • axis([0.5,1,-1,1]):设置当前操作的子图的坐标范围,前两个参数设置的是x轴的范围,后两个数是设置y轴的范围,具体设置哪个子图是通过subplot进行设置的,按照实例就将x坐标设置成了0.5到1,纵坐标设置成了-1到1
    在这里插入图片描述

  • clf:清除生成的图像

  • imagesc(矩阵):使用色块来表示来表示矩阵具体的元素,色块的分布是矩阵元素的分布,矩阵的颜色表示具体矩阵的值
    在这里插入图片描述

  • imagesc(矩阵),colorbar:上述使用色块去表示值的大小,但是并不知道具体的颜色深浅代表的值大小关系,colorbar可以提供一个度量
    在这里插入图片描述

  • imagesc(a),colorbar, colormap gray:colormap表示将色块设置为灰色块
    在这里插入图片描述

在这里插入图片描述

控制语句

  • if语句
    在这里插入图片描述

  • while循环:
    在这里插入图片描述

在这里插入图片描述

  • if else语句
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_10453.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自学Python 62 使用urllib 包并获取百度搜索关键词中得到链接

Python 使用urllib 包 文章目录Python 使用urllib 包一、urllib 包介绍二、使用urllib.request模块三、使用urllib.parse模块在计算机网络模型中&#xff0c;Socket套接字编程属于底层网络协议开发的内容。虽然说编写网络程序需要从底层开始构建&#xff0c;但是自行处理相关协…

【图像分类】基于HOG特征结合SVM实现图像分类识别附matlab代码

1 内容介绍 ​为了满足人工智能在目标识别方法中的应用需求,需要具备对海量数据进行智能分类、识别、判读的能力.进一步挖掘了目标特性数据库数据,并将基于HOGSVM的目标识别算法应用于红外目标识别过程中.选择采集到的汽车、直升机、飞机、舰船、无人机等目标,并结合HOG算子与…

【Vite 实践】Vite 库模式能满足你吗?或许你需要统一构建

2022 年本人投入了 Vite 的怀抱&#xff0c;开始参与到 Vite 社区中&#xff0c;陆续开发了一些插件。 Vite 秉承了开箱即用&#xff0c;简化配置的思路&#xff0c;确实显著提升了前端开发体验。 但是在类库模式的构建上却有所欠缺&#xff0c;只能处理单个输入和单输入出的…

个人笔记--数据库理论 01 关系模型介绍——基于《数据库系统概念》第七版

关系模式 关系的例子 关系模型是目前广泛应用的数据模型由表的集合构成 例如 IDnamedpt_namesalary11111JAMCS12345 元组 tuple&#xff1a;表中的一行&#xff0c;元素无所谓属性 attribute : 原子的&#xff0c;不可再分的&#xff0c;要有属性域&#xff0c;如上表的nam…

云原生爱好者周刊:延迟加载任意 OCI 镜像 | 2022-09-13

开源项目推荐 SOCI Snapshotter SOCI Snapshotter 是一个 Containerd Snapshotter 插件&#xff0c;可以延迟加载任意 OCI 镜像&#xff0c;不需要 Stargz Snapshotter 一样构建特殊格式的镜像才能延迟加载。 Authentication Proxy 这个项目使用 YARP (Yet Another Reverse…

Git的认识和使用

目录 一、前置准备 二、git简介 三、gitee.com的基本使用 1.创建仓库(私库和公库) 2.创建文件及文件夹 新建文件夹两种方式 ①​ ② 3.删除 删除文件 删除仓库 四、组长组员的git使用 git clone 查看文件 git status git add git commit git push ## 命令行配置 多个…

葡聚糖-MAL/NHS/N3/Alkyne/SH/Biotin/CHO/OPSS/OH

产品名称&#xff1a; 葡聚糖-马来酰亚胺&#xff0c;葡聚糖-MAL&#xff0c;马来酰亚胺功能化葡聚糖 英文名称&#xff1a;Dextran-MAL PEG分子量可选&#xff1a;350,550,750,1k&#xff0c;2k&#xff0c;3.4k&#xff0c;5k&#xff0c;10k&#xff0c;20k&#xff08;可…

[仅需1步]企业微信群机器人[0基础接入][java]

[仅需1步]企业微信群机器人[0基础接入][java]背景介绍使用测试项目背景 公司需要把日常的服务器错误抛到企业微信群中,我正好记录下使用企业微信群机器人… 介绍 企业微信群机器人 应用介绍 企业微信是腾讯微信团队打造的企业通讯与办公工具&#xff0c;具有与微信一致的沟…

医院检验LIS系统源码

医院lis源码 实验室信息管理系统源码 .net检验系统源码 医院系统源码 了解更多源码内容&#xff0c;可私信我。 开发环境&#xff1a;.NET4.0 WPF VS2017或VS2019SQL2016 实验室信息管理系统以条码标本为主线&#xff0c;实现从采集、检测、报告、归档的全程跟踪管理。 支持…

DevOps自动化测试的原则和实践

DevOps是为了在保证高质量的前提下缩短系统变更从提交到部署至生产环境的时间。在对系统进行变更时&#xff0c;质量很重要。高质量才能让业务价值传递到系统干系人。『自动化测试既是提高质量的一种重要手段&#xff0c;也是实施持续测试必需的能力&#xff0c;因此它是DevOps…

修改WebBrowser控件的内核解决方案

首先说一下原理 当下很大浏览器他们都是用了IE的core, 这个core只提供HTML/JS的执行和渲染,并没有给出关于界面和一些特性上的事,所以开发自己浏览器如果基于IE core需要自己完成这些内容。 一张图很好的说明了这个情况,IE浏览器的架构:http://msdn.microsoft.com/en-us/li…

nginx - 负载均衡配置-负载均衡策略

目录 知识点1&#xff1a;网站流量分析指标 什么是pv&#xff1f; 什么是uv&#xff1f; 什么是IP&#xff1f; 知识点2&#xff1a;正向代理和反向代理 知识点3&#xff1a;负载均衡实验 IP地址规划&#xff1a; 实验拓扑图 知识点4&#xff1a;负载均衡策略 1、请求…

Spring5.3学习——from 官网 day1-1

Spring5.3学习——from 官网day1-1Spring5.3学习——from 官网day1-1前言概述Spring的设计理念Spring核心&#xff1a;IOC什么是IOC解释IOC容器的包什么是BeanBeanFactory接口简述ApplicationContext接口简述BeanFactory源码描述以下是Bean工厂创建和销毁bean的完整生命周期流程…

Matlab论文插图绘制模板第48期—平行坐标图(Parallelplot)

​上一期文章中&#xff0c;分享了Matlab帕累托图的绘制模板&#xff1a; 这一次&#xff0c;再来分享一种特殊的线图&#xff1a;平行坐标图。 ‘平行坐标图是一种通常的可视化方法&#xff0c;用于对高维几何和多元数据的可视化……为了克服传统的笛卡尔直角坐标系容易耗尽空…

好心情精神心理科:80%双相情感障碍被误诊,千万注意鉴别

双相情感障碍又称躁郁症&#xff0c;其表现复杂&#xff0c;容易与其他精神疾病&#xff08;包括边缘型人格障碍&#xff09;相混淆&#xff0c;超过80%的患者未能得到正确诊断。 具体如何区分双相情感障碍与边缘型人格障碍&#xff1f;在回答这个问题之前&#xff0c;好心情精…

从规模走向规模经济,锅圈食汇回归餐饮初心

预制菜源自美国&#xff0c;在日本因冷链技术发展而普及。后疫情时代&#xff0c;预制菜在中国餐饮市场加速渗透&#xff0c;成为行业的新风向。 9月&#xff0c;第一财经与CBNData发布“Growth502022中国新消费品牌年度增长力榜单”&#xff0c;预制菜品牌锅圈食汇入选。 锅…

设计模式学习笔记--责任链模式

责任链模式 责任链模式是一种对象的行为模式。在责任链模式里&#xff0c;很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递&#xff0c;直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求&…

Tuxera NTFS21Mac苹果电脑读取硬盘磁盘软件

我们经常会使用移动硬盘或 U 盘进行大体积文件的分享、携带。但有时候别人提供的NTFS移动硬盘或者U 盘在 Mac 电脑中只能读取&#xff0c;无法将文件导入到其中。这是因为常见的 NTFS 硬盘格式在 Mac 中不能兼容。 当你从 Windows 转到了 Mac 平台&#xff0c;可能会发现之前用…

RocketMQ-流程图-概念

文章目录RocketMq的角色消息发送的流程RocketMq的角色 Producer&#xff1a;消息的发送者&#xff0c;生产者&#xff1b;举例&#xff1a;发件人Consumer&#xff1a;消息接收者&#xff0c;消费者&#xff1b;举例&#xff1a;收件人Broker&#xff1a;暂存和传输消息的通道…

Python数据分析教程(一):Numpy

数据的纬度 一维数据:列表和集合类型二维数据:列表类型多维数据:列表类型高维数据:字典类型或数据表示格式,如json、xml、yaml维度:一组数据的组织形式列表和数组:一组数据的有序结构Numpy Numpy介绍NumPy是一个开源的Python科学计算基础库,包含:一个强大的N维数组对象…