Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 数据数组中的更改检测_Matlab_Image Processing - Fatal编程技术网

Matlab 数据数组中的更改检测

Matlab 数据数组中的更改检测,matlab,image-processing,Matlab,Image Processing,我有一个名为test.xlsx的文件,下面可以找到该文件的链接。它的图表是 根据图表,在第62点之后,图表有一个向上移动。有没有办法通过图像处理来识别这一点 我在MATLAB中使用了不同大小窗口的medfilt1(列表,5)(),但结果并不好 你能给我一些建议或意见吗 请参见下面的代码。代码使用ztest对数据的移动平均值(index-k:index)和数据(index)进行统计比较。指向ztest的链接为ztest测试data(index)=均值(data(index-k:index))的无效

我有一个名为test.xlsx的文件,下面可以找到该文件的链接。它的图表是

根据图表,在第62点之后,图表有一个向上移动。有没有办法通过图像处理来识别这一点

我在MATLAB中使用了不同大小窗口的
medfilt1(列表,5)
(),但结果并不好

你能给我一些建议或意见吗


请参见下面的代码。代码使用
ztest
对数据的移动平均值(index-k:index)和数据(index)进行统计比较。指向
ztest
的链接为
ztest
测试
data(index)=均值(data(index-k:index))
的无效假设。如果
ztest
返回
h=1
,则无效假设被拒绝,结论是
数据(索引)平均值(数据(索引-k:index))
。在您的数据情况下,
ztest
将检测指定的
alpha
水平的升档或降档

使用您的数据尝试此代码。使用
alpha=0.05
,代码能够检测
index=48
index=66
处的变化。这些是升档(或降档)发生的位置。请注意,您所描述的升档发生在
index=66
处,而不是您所述的
index=62

另外,尝试使用不同的
alpha
k

data=xlsread('test.xlsx');
m = length(data);

start_index = 11;
alpha = 0.05;
k = 10;

h_array = zeros(length(data),1);

for index = start_index:m
    avg = mean(data(index-k:index));
    stdev = std(data(index-k:index));
    if index > start_index        
        val = data(index);
        h = ztest(val,avg,stdev,'alpha',alpha);
        h_array(index) = h;
    end
end

为此,只需使用存储函数即可

detrend(list);

请添加您的代码。我找不到有关
medfit1
的任何文档,您是在哪里找到此函数的。是否有特定原因使用图像处理来完成此任务?@lida,我假设您的意思是
medfilt1
,而不是
medfit1
。我编辑了你的问题以反映这一点。@Takeshi,是的,你是对的。很抱歉出现此错误,感谢您的编辑。我应该补充一点,如果您想在
index=62
检测更改,您需要知道
数据(62:66)
的值。这是因为升档发生在
数据(62:66)
期间。另外,请注意
data=xlsread('test.xlsx')
,这从一开始就应该很明显。非常感谢。你的回答对我很有用。1.alpha和k值的选择标准是什么?2.您所说的“您需要知道数据的值(62:66)”是什么意思?Alpha设置了置信水平。α=0.05时,置信水平为95%。因此,从外行的角度来看,
val
的置信度为95%,它不是来自由
avg
和`stdev>定义的正态分布。
k
设置窗口的大小,作为比较的基础。代码将
val
与平均值和标准偏差进行比较。在前面的
k
值中(代码中存在一些索引错误,因此这不是完全正确的)。
k
值是任意设置的。请注意,
k
的较大值比k的较小值更严格。严格地说,我的意思是
h
值不太可能是1。非常感谢。我的第二个问题呢?你说“如果你想检测索引=62的变化,你需要知道数据的值(62:66)。”你是什么意思?“test.xlsx”文件实际上是每个批次(x轴)的错误(y轴)。非常感谢您的回复。你能解释一下detrend吗?(我阅读了matlab帮助)以及如何识别“我的列表”上的更改?