Octave的一些基本操作和语法,快速上手Octave,用实例解释

2023-11-11

基本语法

1. 直接计算

>> 1+2
ans = 3

2. 变量计算(在最后加上分号";"可以不输出结果)

>> a=1;
>> b=2;
>> a+b
ans = 3

3. 矩阵赋值

>> a=[1 2;3 4; 5 6]
a =

   1   2
   3   4
   5   6

4. 生成一个以0.2为间隔的1x6的行矩阵

>> a=[1:0.2:2]
a =

   1.0000   1.2000   1.4000   1.6000   1.8000   2.0000

生成一个以1为间隔的1x5的行矩阵

>> v=1:5
v =

   1   2   3   4   5

5. 生成矩阵的一些快捷方式

>> b=ones(2,3)
b =

   1   1   1
   1   1   1

>> b=2*ones(2,3)
b =

   2   2   2
   2   2   2

>> b=zeros(2,3)
b =

   0   0   0
   0   0   0

6. 随机生成矩阵

>> w=rand(3,3)
w =

   0.416753   0.445458   0.465859
   0.572142   0.242774   0.846336
   0.067587   0.464393   0.494254

>> w=randn(1,3)
w =

   0.060119   0.374436  -1.593184

7. 对应随机变量w绘制出直方图

>> w=-6+sqrt(10)*(randn(1,10000));
>> hist(w)

在这里插入图片描述

8. 单位矩阵

>> I=eye(3)
I =

Diagonal Matrix

   1   0   0
   0   1   0
   0   0   1

9. 帮助

>> help eye
'eye' is a built-in function from the file libinterp/corefcn/data.cc

移动数据

1. 计算矩阵的大小size

>> A
A =

   1   2
   3   4
   5   6

>> sz=size(A)
sz =

   3   2

2. 计算的行/列大小,size(A,1)返回A的行数,size(A,2)返回A的列数

>> size(A,1)
ans = 3
>> size(A,2)
ans = 2

3. length返回较大的维数

>> length(A)
ans = 3

4. 一些基本的操作

函数 意义
pwd 显示当前路径
cd‘xx’ 改变当前路径
ls 显示桌面路径
load 读取文件
who 显示当前Octave的所有变量
whos 显示变量的详细信息
clear xx 清除变量xx
clear 清空变量
save xx v -ascii 将v以ASCII码的方式保存至xx文件中

5. 矩阵取值
①取某个具体的值

 >> A
A =

   1   2
   3   4
   5   6

>> A(3,2)
ans = 6

②取整列“:”冒号代表在该行/列的所有元素

>> A(2,:)
ans =

   3   4

③同时取多列

>> A([1,3],:)
ans =

   1   2
   5   6

6. 矩阵赋值

>> A(:,2)=[10;11;12]
A =

    1   10
    3   11
    5   12

7. 矩阵新增

>> A=[A,[100;101;102]]
A =

     1    10   100
     3    11   101
     5    12   102

8. 矩阵合并
①C=[A B] (合并)

>> A
A =

     1    10   100
     3    11   101
     5    12   102

>> B
B =

   1
   2
   3

>> C=[A B]
C =

     1    10   100     1
     3    11   101     2
     5    12   102     3

②C=[A;B] (上下合并)

 >> A
A =

     1    10   100
     3    11   101
     5    12   102

>> B=[1 3 6]
B =

   1   3   6

>> C=[A;B]
C =

     1    10   100
     3    11   101
     5    12   102
     1     3     6

计算数据

1.A为一个矩阵
*注意:A*B做的是矩阵乘法,而A.B做的是元素间的乘法

操作 意义
A.*B 将A的每个元素与B的每个元素相乘
A.^2 将A的每个元素平方
1./A 将A的每个元素取倒数
log(A) 将A的每个元素取对数
exp(A) 将A的每个元素以e为底去对数
abs(A) 取A的绝对值
-A 取A的相反数
A’ A的转置
A+1 A的每个元素加1
pinv(A) 求A的伪逆矩阵

2. 当a=[1 2 0.5 4 11]时

操作 意义
max(a) 求得a中的最大值
[val,ind]=max(a) val为a中的最大值,ind为最大值的下标
a<3 对比a中每个元素与3的大小
find(a<3) 找出比3小的元素
sum(a) 求a的和
prod(a) 求a的乘积
floor(a) 对a向下取整
ceil(a) 对a向上取整

注意:当a如果为一个矩阵的话,sum(a)得到的是每一列的最大值。默认是以列为单位的。
max(a,[],1)求a每列的最大值,max(a)默认就是求每列的最大值
max(a,[],2)求a每行的最大值

3. magic()函数,生成的矩阵每行、每列、对角线的元素的和为用一个值。一般用于快速生成一个矩阵。

>> A=magic(3)
A =

   8   1   6
   3   5   7
   4   9   2

>> sum(A)
ans =

   15   15   15

数据绘制

  1. 首先我们来看一个实例:
>> t=[0:0.01:0.98];
>> y1=sin(2*pi*4*t);
>> plot(t,y1)
>> hold on;
>> y2=cos(2*pi*4*t);
>> plot(t,y2)
>> xlabel('time')
>> ylabel('value')
>> title('my plot')
>> legend('sin','cos')
>>> close
操作 意义
plot() plot函数常常被用于绘制各种二维图像
xlabel() 设置x的坐标名
ylabel() 设置y的坐标名
title() 设置标题
legend() 设置图标
close 关闭图像

得到的图像为:
在这里插入图片描述

  1. 我们也可以将图像绘制成1*2的格子
>> subplot(1,2,1); #使用第一个格子
>> plot(t,y1)
>> subplot(1,2,2) #使用第二个格子
>> plot(t,y2)
> axis([0.5 1 -1 1]) #设置坐标

我们可以得到图像
在这里插入图片描述

  1. 来看一个有色彩的例子
>> A=magic(5)
>> imagesc(A)

得到的图像为:
在这里插入图片描述
我们也可以为之设定为特定的色系

>>  imagesc(A),colorbar,colormap gray;

得到的图像为:
在这里插入图片描述

控制语句

1. for循环

>> for i=1:10,
      v(i)=i^2;
   end
>> v
v =

     1     4     9    16    25    36    49    64    81   100

2. while循环

>> i=1;
>> while i<=5,
   i=i+1;
   v(i)=i;
   end;
>> v
v =

   0   2   3   4   5   6

3. if语句

>> for i=1:10,
     w(i)=i;
     if i==3,
        break;
     end;
  end;
>> w
w =

   1   2   3

4. elseif语句

>> if a==0,
      disp('zero');
   elseif a==1;
      disp('one');
   else,
      disp('no');
   end;
one

5. 函数的调用
先建立一个“.m”文件用于存放函数,然后在命令行中应用该路径地址
例如存放一个代价函数

function J = costFunction (x,y,theta)
  m=size(x,1);
  predictions=x*theta;
  sqr =(predictions-y).^2;
  J = 1/(2*m)*sum(sqr);

endfunction

然后引入路径

>> addpath('C:\Users\hp')

调用函数

>> x=[1 1; 1 2; 1 3];
>> y=[1;2;3];
>> theta=[0;1];
>> j=costFunction(x,y,theta)
j = 0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Octave的一些基本操作和语法,快速上手Octave,用实例解释 的相关文章

随机推荐

  • QT中为生成的exe运行文件添加图标

    1 准备好ico图标文件名字为test ico 最好放在和 pro文件同一个文件夹中 2 创建一个叫icon rc的文件 里面写上文本信息IDI ICON1 ICON test ico 保存好 3 在pro文件中添加代码 RC FILE i
  • 09.Javascript设计模式之装饰器模式----Decorator

    09 Javascript设计模式之装饰器模式 Decorator 首先 我非常遗憾的要说一声 我花了两个小时整理的关于装饰器模式的笔记 因为一个不可预期的故障 ADoc文档上传到服务器后 文件损坏了 文件毫无备份 难道是我的笔记中包含法律
  • 数据结构--线性表详解(一)

    这里写链接内容1 前言 线性表是最常用且是最简单的一种数据结构 形如 A1 A2 A3 An这样含有有限的数据序列 我们就称之为线性表 2 线性表的两种表示形式 顺序表示 其实就是数组 链表表示 3 线性表一般操作的介绍 线性表一般包含如下
  • Swift语法学习--实用函数&关键词

    文章目录 abs min max swap filter map reduce Defer guard let 自定义运算符 abs min max swap filter map reduce Defer guard let 自定义运算符
  • 人脸识别系统具有哪些管理功能

    人脸识别系统是一个具有名单管理 资源管理 布控管理 任务管理的多功能系统 主要功能有 1 名单管理 对名单库及库内名单进行管理 支持用户新增 修改 删除名单库 也可以对库内名单进行新增 修改 删除等动作 2 资源管理 对布控点及布控点内的人
  • [学习flex] 1.利用flex实现文字和谐小程序

    灵感来自于09平台dota1 游戏选手对喷时经常互飙国粹 问候对方全家 后来09平台进行了聊天和谐 不和谐的文字都会被 替换 今天我就就用flex实现类似的效果 话不多说上flex代码 脏话 printf 国粹 printf printf
  • BF算法与KMP模式匹配算法(画图详解,C语言实现)

    KMP算法 1 BF算法 1 1BF算法定义 1 2BF算法举例 1 3BF算法代码实现 1 4BF算法性能分析 2 KMP算法 2 1KMP算法与BF算法的区别 2 2求KMP算法next数组 2 3KMP算法的过程举例 2 4KMP算法
  • attr 和 prop 的区别介绍

    attr 和 prop 的区别介绍 对于 HTML 元素本身就带有的固有属性 在处理时 使用 prop 方法 对于 HTML 元素我们自己自定义的 DOM 属性 在处理时 使用 attr 方法 实例 1 a href https www r
  • Cesium设置时间类

    场景时钟类 export default class SceneClock viewer multiplier constructor viewer this viewer viewer 设置场景时钟 param start 开始时间 pa
  • vue+cesium汉化包

    把这个js放进你的项目里面然后调用就可以 我这个是vue项目 然后运用的是es6的导出语法 cesium 可视化部分的中文汉化 包含内容如下 1 汉化方式非从源码层面进行 而是外挂了一个插件执行 使用方便 但是汉化程度不深 只汉化了cesi
  • Introducing Language Guidance in Prompt-based Continual Learning

    本文是LLM系列文章 针对 Introducing Language Guidance in Prompt based Continual Learning 的翻译 基于提示的持续学习中引入语言指导 摘要 1 引言 2 相关工作 3 背景
  • IDE 之 Eclipse安装

    目录 前言 一 Eclipse是什么 二 Eclipse优缺点 1 优点 2 缺点 三 安装Eclipse 1 官方下载Eclipse 2 安装Eclipse 3 运行eclipse 3 1 进入欢迎页面 前言 对于学习java的人来说 E
  • PTA(浙大版《C语言程序设计(第3版)》题目集)习题6-4 使用函数输出指定范围内的Fibonacci数 (20 分)

    PTA 浙大版 C语言程序设计 第3版 题目集 习题6 4 使用函数输出指定范围内的Fibonacci数 20 分 本题要求实现一个计算Fibonacci数的简单函数 并利用其实现另一个函数 输出两正整数m和n 0
  • [科普] 狭义相对论

    本文转载至 http www dlkp gov cn keputiandi universe article dispArticle Asp ID 58 第一章 狭义相对论 一 狭义相对论思想的根源 1 法拉第 麦克斯维将电磁学推向 场 的
  • 支付宝小程序框架分析

    支付宝小程序框架逆向分析 本文对支付宝小程序的正向开发做了简单介绍 并从正向开发的文件类型入手 对小程序的宿主框架进行了逆向分析 包括运行机制 通信模型以及安全防护体系等内容 代码开发 支付宝小程序开发在语法方面与传统的前端网页开发非常类似
  • Python——发送邮件

    一 smtplib模块 主要通过SMTP类与邮件系统进行交互 使用方法如下 1 实例化一个SMTP对象 s smtplib SMTP 邮件服务地址 端口号 s smtplib SMTP SSL 邮件服务地址 端口号 2 登陆邮件 权限验证
  • Linux:全志H3图像codec使用笔记

    1 前言 限于作者能力水平 本文可能存在谬误 因此而给读者带来的损失 作者不做任何承诺 2 图像 codec 概述 图像编解码器 codec 包含 Encoder 和 Decoder 两部分功能 我们用下列分别说明 Encoder 和 De
  • 解决window平台下cocos creator 构建发布面板打开后无法显示问题

    项目场景 creator构建发布界面 问题描述 window平台下cocos creator 构建发布面板打开后无法显示 原因分析 项目的配置文件目录setting和local目录内容混乱可能会导致该问题 这时候后重装creator也是没用
  • 设计模式全解析(一)——带你搞懂设计模式

    各位朋友 一提到 设计模式 四个字 是不是有一种若隐若现的朦胧感 我知道设计模式 我知道单例 工厂 观察者 策略 但是设计模式到底是什么呢 解决了什么问题呢 接下来我会一步一步解析一下设计模式 以及各个不同的设计模式到底要做的是什么 我们先
  • Octave的一些基本操作和语法,快速上手Octave,用实例解释

    基本语法 1 直接计算 gt gt 1 2 ans 3 2 变量计算 在最后加上分号 可以不输出结果 gt gt a 1 gt gt b 2 gt gt a b ans 3 3 矩阵赋值 gt gt a 1 2 3 4 5 6 a 1 2