ischange
发现数据的突然变化
语法
描述
例子
平均变化
创建一个噪声数据向量,并计算数据平均值的突变。
=[(1、5)的25 * 50的(1、5)* 1(1、5)]+兰德(15);TF = ischange(A)
TF =1x15逻辑阵列0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
要计算更改点之间数据的平均值,请指定第二个输出参数。
[TF,S1] = ischange(A);情节(,‘*’)举行在楼梯(S1)传说(“数据”,”段的意思是,“位置”,“西北”)
线性变化
创建一个噪声数据向量,并计算数据的斜率和截距的突变。设置较大的检测阈值可以减少由于噪声而检测到的变更点的数量。
A =[0(1100) 1:10 99:-1:50 50* 1(1,250)] + 10*兰特(1,500);[TF,S1,S2] = ischange(A,“线性”,“阈值”, 200);segline = S1.*(1:500) + S2;情节(1:50 0、1:50 0 segline)传说(“数据”,“线性政权”)
作为提供阈值的替代方法,您还可以指定要检测的变更点的最大数量。
[TF,S1,S2] = ischange(A,“线性”,“MaxNumChanges”3);
矩阵数据
计算一个矩阵的每一行的平均值的突变。
A = diag(25*ones(5,1)) + rand(5,5))
一个=5×525.8147 0.0975 0.1576 0.1419 0.6557 0.9058 25.2785 0.9706 0.4218 0.0357 0.1270 0.5469 25.9572 0.9157 0.8491 0.9134 0.9575 0.4854 25.7922 0.9340 0.6324 0.9649 0.8003 0.9595 25.6787
TF = ischange(A,2)
TF =5x5逻辑阵列0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1
输入参数
一个
- - - - - -输入数据
向量|矩阵|多维数组|表格|时间表
输入数据,指定为矢量、矩阵、多维数组、表格或时间表。
数据类型:单
|双
|表格
|时间表
方法
- - - - - -变化检测方法
“的意思是”
(默认)|“方差”
|“线性”
更改检测方法,指定为以下值之一:
“的意思是”
-发现数据平均值的突变。“方差”
-发现数据方差的突变。“线性”
-发现数据斜率和截距的突变。
昏暗的
- - - - - -操作维度
正整数标量
操作维度,指定为正整数标量。如果未指定值,则默认为第一个大小不等于1的数组维数。
考虑一个米
——- - - - - -n
输入矩阵,一个
:
ischange (1)
的每一列数据检测变更点一个
并返回米
——- - - - - -n
矩阵。ischange (2)
的每一行中的数据检测变更点一个
并返回米
——- - - - - -n
矩阵。
对于表格或时间表输入数据,昏暗的
不支持,操作将金宝app分别沿着每个表或时间表变量进行。
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:TF = ischange(A,'MaxNumChanges',5)
SamplePoints
- - - - - -采样点
向量|表变量名|标量|函数处理|表格vartype
下标
样本点,指定为样本点值的向量,如果输入数据是表格,则指定为下表中的选项之一。样本点代表x数据的-轴位置,并且必须排序并包含唯一的元素。采样点不需要均匀采样。向量[1 2 3…]
是默认值。
当输入数据是一个表时,您可以使用以下选项之一将样本点指定为表变量:
表格输入选项 | 描述 | 例子 |
---|---|---|
变量名 | 指定单个表变量名的字符向量或标量字符串 |
|
标量变量索引 | 标量表变量索引 |
|
逻辑向量 | 一种逻辑向量,其每个元素对应于一个表变量,其中 |
|
函数处理 | 接受表变量作为输入并返回逻辑标量(必须为)的函数句柄 |
|
vartype 下标 |
类生成的表下标 |
|
请注意
输入数据为时,不支持此名称-值参数金宝app时间表
.时间表使用行时间向量作为样本点。若要使用不同的抽样点,必须编辑时间表,使行时间包含所需的抽样点。
例子:ischange([1 2 3 4 5 6],'linear','SamplePoints',[1 2 3 10 20 30])
例子:ischange (T,“线性”,“SamplePoints”,“Var1”)
数据类型:单
|双
|datetime
|持续时间
DataVariables
- - - - - -要操作的表变量
表变量名|标量|向量|单元阵列|函数处理|表格vartype
下标
要操作的表变量,指定为此表中的选项之一。的DataVariables
Value指示要检查输入表的哪些变量以寻找更改点。与指定变量关联的数据类型必须为双
或单
.
第一个输出特遣部队
包含假
对于未指定的变量DataVariables
除非OutputFormat
是“表格”
.
选项 | 描述 | 例子 |
---|---|---|
变量名 | 指定单个表变量名的字符向量或字符串标量 |
|
变量名向量 | 字符向量或字符串数组的单元格数组,其中每个元素都是一个表变量名 |
|
变量指标的标量或向量 | 表变量索引的标量或向量 |
|
逻辑向量 | 一种逻辑向量,其每个元素对应于一个表变量,其中 |
|
函数处理 | 接受表变量作为输入并返回逻辑标量的函数句柄 |
|
vartype 下标 |
类生成的表下标 |
|
例子:ischange(T,'数据变量',["Var1" "Var2" "Var4"])
OutputFormat
- - - - - -输出数据类型
“逻辑”
(默认)|“表格”
输出数据类型,指定为以下值之一:
“逻辑”
—对于表格或时间表输入数据,返回输出特遣部队
作为一个逻辑数组。“表格”
—对于表输入数据,返回输出特遣部队
作为一张桌子。对于时间表输入数据,返回输出特遣部队
作为一个时间表。
对于向量、矩阵或多维数组输入数据,OutputFormat
不支持。金宝app
例子:ischange (T, OutputFormat”、“表格”)
阈值
- - - - - -变更点阈值
1(默认)|负的标量
更改点阈值,指定为非负标量。将阈值增加到大于1会产生更少的变更点。
该阈值决定了检测到的变更点的数量,在以下情况下不能指定MaxNumChanges
都是确定的。
MaxNumChanges
- - - - - -变更点的最大数量
正整数标量
要检测的变更点的最大数量,指定为正整数标量。ischange
使用不超过变更点指定值的自动阈值,因此阈值
当不能指定时MaxNumChanges
都是确定的。
输出参数
特遣部队
-改变点指示器
向量|矩阵|多维数组|表|时间表
更改点指示符,以矢量、矩阵、多维数组、表或时间表的形式返回。
特遣部队
尺寸和一个
除非OutputFormat
是“表格”
.如果的值OutputFormat
是“表格”
,然后特遣部队
的变量DataVariables
指定。
数据类型:逻辑
S1
-平均值或斜率
向量|矩阵|多维数组|表|时间表
变化点之间数据的平均值或斜率,以矢量、矩阵、多维数组、表格或时间表的形式返回。
如果变更点检测方法为
“的意思是”
或“方差”
,然后S1
包含每个段的平均值。如果方法是
“线性”
,然后S1
包含每段的斜率。
S1
具有与输入数据相同的类型。
数据类型:双
|单
|表格
|时间表
S2
-方差或截距
向量|矩阵|多维数组|表|时间表
变更点之间数据的方差或截距,以矢量、矩阵、多维数组、表格或时间表的形式返回。
如果变更点检测方法为
“的意思是”
或“方差”
,然后S2
包含每个段的方差。如果方法是
“线性”
,然后S2
包含每个段的截距。
S2
具有与输入数据相同的类型。
数据类型:双
|单
|表格
|时间表
更多关于
变化点
一个数据向量一个如果可以分成两个部分,则包含更改点一个1而且一个2这样
阈值是否由阈值
参数,C表示代价函数。
例如,用于检测平均值突变的代价函数为 ,在那里N向量的元素个数是多少x.成本函数衡量的是一个段的近似值是多少。
ischange
迭代最小化代价函数的和,以确定更改点的数量k以及它们的位置
参考文献
基利克·R, p·费恩海德,内务部·a·埃克利。“用线性计算代价对变化点进行最佳检测。”美国统计协会杂志.Vol. 107, no . 500, 2012, pp.1590-1598。
扩展功能
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
的
OutputFormat
不支持名称-值参数。金宝app对于单精度输入,所生成代码的输出可能与MATLAB不匹配®输出。这是因为生成的代码
ischange
以单精度执行大多数中间计算。DataVariables
不能包含重复的变量名。
线程环境
使用MATLAB®在后台运行代码backgroundPool
或使用并行计算工具箱™加速代码ThreadPool
.
这个函数完全支持基于线程的环境。金宝app有关更多信息,请参见在线程环境中运行MATLAB函数.
版本历史
在R2017b中引入R2022a:返回包含逻辑输出的表或时间表
对于表格或时间表输入数据,返回表格输出特遣部队
属性来代替逻辑数组OutputFormat
参数的名称-值“表格”
.
R2021b:指定样本点作为表变量
属性将样本点指定为表变量SamplePoints
名称-值参数。
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。