首页 > 其他分享 >浅谈Octave的使用(从下载到基础语言编译)第一部分

浅谈Octave的使用(从下载到基础语言编译)第一部分

时间:2024-07-17 23:27:08浏览次数:11  
标签:octave 运算 矩阵 编译 Octave 使用 我们 浅谈

 介绍

出发点

  很多关注机器学习(看过吴恩达大神的视频),还有因为一些原因没有办法使用Matlab(可能是由于权限或是资金问题)的小伙伴们可能都或多或少地听说过Octave这一款软件,但又没用真正地下载和使用这一款免费的开源软件,基于这样一个现状,我想跟大家聊聊Octave这一软件的使用。

 与Matlab的异同点

Octave的语法和Matlab的十分相似,因此有matlab基础的小伙伴可以直接将自己的语法包带到Octave喔。可是,我们都知道matlab是要收取高昂费用的,而octave是开源的,免费的,因此两者必然有着差别。Octave只提供基础的功能,如 Simulink 和 Control System Toolbox,在 Octave 中不可用,而matlab的功能包更为齐全。在复杂度较高,处理难度较大的计算中Octave有着更明显的劣势。matlab使用的人也更多,社区也就更大啦,相较之下,Octave的知名度和使用人群会少一些。当然,Octave还是有它的过人之处的(除了它是免费的之外),譬如octave和C++等语言进行对接的话,更为方便和容易。Octave也有着丰富的数据库函数,例如在信号处理(signal processing),线性代数(linear algebra),优化等相关领域的计算。当然,我想信,你之所以会使用Octave,还是因为它是免费的,开源的。

如何下载Octave

下载网址

GNU Octaveicon-default.png?t=N7T8https://octave.org/点击上述网址,便可开始你的Octave之旅啦。

操作指示

点开网址后,我们会进入到这样一个页面,这时候点击download这一选项,在进入download后,选择与你电脑适配的安装包后,根据系统的指示,一步一步地把心心念念的Octave安装到自己的PC上就可以啦。(如为apple的用户则选择MAC版本,而Windows的用户则根据自己PC的状况选择合适的安装包即可)

关于Octave的基础操作

基础运算

像基础的数值运算,可以直接输入数字进行运算,这里就不多说了。关于逻辑运算,==则为逻辑等价,而~=为不等价,&&表示和的意思,||为或的意思。此外在Octave上的注释用%来表示。

在进行赋值时,如不加;这一符号则会在下一行进行对赋值结果的打印。(加上;,则可以抑制打印),若想打印,敲回车后,在下一行输入你所设定的变量,也可以使用disp(变量)这一语法来实现。

关于矩阵

我们知道在机器学习中,我们一般使用矩阵的运算来解决我们的问题。那么怎么在Octave上使用矩阵运算呢?

譬如我们创建一个变量a,将【1 2;3 4;5 6】赋值给a这个变量,我们就会发现此时a是个3*2的矩阵,在octave上,我们能看到

而另一种创建矩阵的方式则为

要注意两者的不同之处,当然,选择哪一种,由用户自己决定。

聊完矩阵,我们再聊聊向量

如图,我们创建了一个行向量以及一个列向量。

关于向量,我们还有一种操作。

这里的意思是从1到2,每一个步长为0.1.通过这样的方式,我们也可以创建自己的向量

不写步长又会怎么样,请看下图

在这里我们也提供一些其他生成矩阵的方法给小伙伴们

像上图,ones的意思就是 每一项都赋值为1,(x,y),其中·x为行数,y为列数,我们亦可以对每一个数进行简单的运算。还有zeros,这个同理。

还可以使用rand(行数,列数)来随机生成一个指定行数和列数的矩阵(矩阵内的数值处于0到1之间)。如果使用randn(x,y)则可以生成一个高斯随机变量,使用hist(变量)这一语法,你便可以可视化地看到所生成的矩阵。使用eye(X)便可以生成一个X*X的单位矩阵。

接下来会讲到的内容

octave中会讲到的内容

相信你在明白基础的赋值后,对于在矩阵中的数值运算和其他操作有着极大的兴趣。而接下来的几个部分,我们将会谈到矩阵的运算和矩阵的其他操作,还会聊到关于如何在Octave这一个软件上怎么进行绘图,基础的循环以及基础的判断如何实现(关于for,while,if的使用与实现)

未来展望

如果你感兴趣的话,我们还将推出机器学习,深度学习,python语法学习,C++语法学习的相关内容,记得关注博主喔,谢谢各位客官的支持啦。

标签:octave,运算,矩阵,编译,Octave,使用,我们,浅谈
From: https://blog.csdn.net/2301_79740539/article/details/140356003

相关文章

  • Makefile-只修改了.h头文件,编译为什么不起作用
    Makefile-只修改了.h头文件,编译为什么不起作用?-腾讯云开发者社区-腾讯云(tencent.com) 不知道各位小伙伴是否碰到过这样的情况:一个.c文件include另一个.h头文件,使用Makefile来构建(编译)应用程序。第一次编译、执行,很正常!但是此时,如果修改了.h头文件,再次编译时,就出现......
  • 端口转发工具rinetd 交叉编译及端口配置(下载、交叉编译、端口转发)
    端口转发工具rinetd从下载到使用(下载、交叉编译、端口转发)一、下载下载:https://wwm.lanzoue.com/ixjKn24phczg密码:apeb二、交叉编译1、进入源代码目录cd~/software/rinetd-0.702、清理现有配置和生成的文件makedistclean3、新建build文件夹,并进入mkdirbuildcdb......
  • 【转载】浅谈 pb_ds 库及其在OI其他算竞中的应用
    【原链接】这篇太叼了!pb_ds,比STL更强大的模板库。upd.on10.27更新了优先队列的常数分析,增加了“万能头文件”的内容。前言之前看到过一篇关于pb_ds写得很好的文章,但现在找不到了;OI-wiki上的内容的不太完整。那不如自己动手,丰衣足食。当然,pb_ds库中有很多东西算......
  • [项目自荐] 交叉编译njs并使用Nginx搭建自由的个人网盘:vList5
    这个博客好久没有打理了,最近才想起来这篇文章是以下5篇文章的组合,希望这个免费的项目能实现他的初衷吧vList5:部署指南vList5.3全面加密,从我做起njs从入门(交叉编译)到入坟(与vList5配对)vList5+njs/moment实用与使用光猫折腾4:为光猫编译armel版本的nginx特色:使用......
  • SqlServer SQL语句或存储过程运行慢 使用 WITH RECOMP ILE 或 OPTION (RECOMPILE)(重新
    如果您的存储过程包含参数可以重新申明变量把参数接收下,可能解决你过程执行慢的原因。如果未能解决,请参考以下文章内容:WITHRECOMPILE子句可以在以下地方使用:一种是当你创建一个过程时,例如:CREATEPROCEDUREMySPWITHRECOMPILEAS这指示SQLServer在每次调用时重新编......
  • Pytorch的编译新特性TorchDynamo的工作原理和使用示例
    在深度学习中,优化模型性能至关重要,特别是对于需要快速执行和实时推断的应用。而PyTorch在平衡动态图执行与高性能方面常常面临挑战。传统的PyTorch优化技术在处理动态计算图时效果有限,导致训练时间延长和模型性能不佳。TorchDynamo是一种为PyTorch设计的即时(JIT)编译器,通过在运行时......
  • 第二章 编译FFmpeg并开启H.264编码
    目录前言1.下载x2642.编译x2643.编译FFmpeg3.1可能出现的问题和解决方法3.1.1ERROR:x264notfoundusingpkg-config解决方法:3.1.2libx264isgpland--enable-gplisnotspecified.解决方法:4.检查编译结果这里我默认大家已经看过第一章FFmpeg初体验:在Centos7.9下编......
  • 浅谈时间复杂度
    时间复杂度定义衡量一个算法的快慢,一定要考虑数据规模的大小。所谓数据规模,一般指输入的数字个数、输入中给出的图的点数与边数等等。一般来说,数据规模越大,算法的用时就越长。而在算法竞赛中,我们衡量一个算法的效率时,最重要的不是看它在某个数据规模下的用时,而是看它的用时随数......
  • 静态链接——编译和链接
    一、编译和链接的过程1、GCC生成可执行文件的总体过程在日常的开发过程中,IDE总是会帮我们将编译和链接合并,一键式的执行,即使在liunx中,使用命令行来编译一个源文件也只是简单的一句"gcchello.c"。我们并没有过多的关注编译和链接的运行机制和机理,我想从本质出发,深入了解这......
  • 浅谈AI是在帮助开发者还是取代他们?
    在软件开发领域,生成式人工智能(AIGC)确实正在改变开发者的工作方式,但它的作用更多是辅助而非替代。以下是对这一问题的详细分析:AI作为开发者的助手代码生成:AI工具如GitHub的Copilot可以根据上下文自动生成代码片段,极大地提高了编码效率。这并不意味着AI可以完全取代开发者,因......