当前位置: 首页 > news >正文

MATLAB中ischange函数用法

目录

语法

说明

示例

均值的变化

线性区的变化

矩阵数据


        ischange函数的功能是查找数据中的突然变化。

语法

TF = ischange(A)
TF = ischange(A,method)
TF = ischange(___,dim)
TF = ischange(___,Name,Value)
[TF,S1] = ischange(___)
[TF,S1,S2] = ischange(___)

说明

        ​TF = ischange(A) 返回一个逻辑数组,当 A 的对应元素的均值出现突然变化时,该逻辑数组的元素为逻辑值 1 (true)。

        ​TF = ischange(A,method) 指定如何定义数据中的变化点。例如,ischange(A,'variance') 将计算 A 的元素方差的突然变化。​

        TF = ischange(___,dim) 为上述任一语法指定 A 的运算维度。例如,ischange(A,2) 计算矩阵 A 的每一行的变化点。​

        ​TF = ischange(___,Name,Value) 使用一个或多个名称-值参数指定用于计算变化点的其他参数。例如,ischange(A,'MaxNumChanges',m) 最多检测到 m 个变化点。​

        ​[TF,S1] = ischange(___) 还返回有关变化点之间的线段的信息。例如,[TF,S1] = ischange(A) 返回包含向量 A 的变化点之间的数据均值的向量 S1。

        ​[TF,S1,S2] = ischange(___) 返回有关变化点之间的线段的其他信息。例如,[TF,S1,S2] = ischange(A) 返回包含每个线段均值的向量 S1 以及包含向量 A 的每个线段方差的向量 S2。​

示例

均值的变化

        创建一个由含噪数据组成的向量,并计算数据均值的突然变化。

A = [ones(1,5) 25*ones(1,5) 50*ones(1,5)] + rand(1,15);TF = ischange(A)
TF = 1x15 logical array0   0   0   0   0   1   0   0   0   0   1   0   0   0   0

要计算变化点之间数据的均值,请指定第二个输出参数。

[TF,S1] = ischange(A);
plot(A,'*')
hold on
stairs(S1)
legend('Data','Segment Mean','Location','NW')

如图所示:

线性区的变化

        创建一个由含噪数据组成的向量,并计算数据的斜率和截距的突然变化。设置较大的检测阈值可减少由于噪声而检测到的变化点数。

A = [zeros(1,100) 1:100 99:-1:50  50*ones(1,250)] + 10*rand(1,500);
[TF,S1,S2] = ischange(A,'linear','Threshold',200);
segline = S1.*(1:500) + S2;
plot(1:500,A,1:500,segline)              
legend('Data','Linear Regime')

如图所示:

除了提供阈值外,还可以指定要检测的最大变化点数。

[TF,S1,S2] = ischange(A,'linear','MaxNumChanges',3);

矩阵数据

计算矩阵每一行均值的突然变化。

A = diag(25*ones(5,1)) + rand(5,5)
A = 5×525.8147    0.0975    0.1576    0.1419    0.65570.9058   25.2785    0.9706    0.4218    0.03570.1270    0.5469   25.9572    0.9157    0.84910.9134    0.9575    0.4854   25.7922    0.93400.6324    0.9649    0.8003    0.9595   25.6787TF = ischange(A,2)
TF = 5x5 logical array0   1   0   0   00   1   1   0   00   0   1   1   00   0   0   1   10   0   0   0   1

参数说明

 A-输入数据,指定为向量、矩阵、多维数组、表或时间表。

method — 变化检测方法

更改检测方法,指定为下列值之一:

  • 'mean' - 计算数据均值的突然变化。

  • 'variance' - 计算数据方差的突然变化。

  • 'linear' - 计算数据的斜率和截距的突然变化。

dim — 运算维度

运算维度,指定为正整数标量。如果未指定值,则默认值是大小不等于 1 的第一个数组维度。

以一个 m×n 输入矩阵 A 为例:

  • ischange(A,1) 基于 A 的每列中的数据检测变化点,并返回一个 m×n 矩阵。

    ischange(A,1) column-wise operation

  • ischange(A,2) 基于 A 的每行中的数据检测变化点,并返回一个 m×n 矩阵。

    ischange(A,2) row-wise operation

        对于表或时间表输入数据,不支持 dim,并且分别对每个表或时间表变量进行运算。

http://www.lryc.cn/news/165231.html

相关文章:

  • 【React + Ant Design】表单如何在前置项未填写时禁止后置项交互并提示
  • Linux学习之MySQL建表
  • Redis哨兵集群的介绍及搭建
  • 【zookeeper】zookeeper日常运维
  • 【工作记录】MQTT介绍、安装部署及springboot集成@20230912
  • Flask 使用 JWT(一)
  • Oracle(1):Oracle简介
  • 计算机网络篇之IP地址
  • webrtc-m79-测试peerconnectionserver的webclient-p2p-demo
  • C#,《小白学程序》第十五课:随机数(Random)第二,统计学初步,数据统计的计算方法与代码
  • C# 子类如何访问子类的方法(同一父类)
  • 《Docker 容器化的艺术:深入理解容器技术》
  • gitlab配置hook,commit message的时候校验提交的信息
  • ssh远程管理服务
  • C语言顺序表
  • 滑动窗口详解
  • JAVA -华为真题-分奖金
  • 第二章:25+ Python 数据操作教程(第十八节如何使用 Matplotlib 库在 python 中执行绘图和数据可视化)持续更新中
  • XShell7 + Xftp7 + IDEA 打包MapReduce程序到集群运行
  • 微软D365 入门文章汇总以及各项认证介绍(持续跟新.....)
  • vscode搭建Django自带后台管理系统
  • Verilog零基础入门(边看边练与测试仿真)-时序逻辑-笔记(4-6讲)
  • 2023-09-12力扣每日一题
  • leetcode面试题:交换和(三种方法实现)
  • 前端可视化界面开发技术:实战与优化
  • Python实现机器学习(下)— 数据预处理、模型训练和模型评估
  • 树结构处理,list和tree互转
  • 可视化大屏设计模板 | 主题皮肤(报表UI设计)
  • Spring Boot + Vue的网上商城之客服系统实现
  • RabbitMQ: return机制