24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 3449  |  回复: 2

liguoming01

木虫 (正式写手)

[求助] 求解MATLAB中相邻数组的绝对值之差 已有1人参与

我想通过MATLAB进行数据分析,数据如附件11.262所示,具体要实现的功能如下:
       如果相邻的数(附件中的“feed”数据)的绝对值之差大于1.5,而且持续5秒(附件中的“time”数据){例如:如果将feed导入命名为F,则条件为abs(F(i)-F(i+1))>1.5 && abs(F(i+1)-F(i+2))>1.5 && abs(F(i+2)-F(i+3))>1.5 && abs(F(i+3)-F(i+4))>1.5},则用这5个数(附件中的“feed”数据)中的开始之前的10个数的均值减去开始之后的10个数的均值{mean(F(i-10: i))-mean(F(i+4: i+14))},然后返回差值,返回出现这个差值的时间(附件中的“time”),返回出现差值的个数,返回差值的总和。
        简单的代码如下:
L = length(F);
B =[];
for i = 1: L
    if abs(F1(i)-F1(i+1))>2 && abs(F1(i+1)-F1(i+2))>2 && abs(F1(i+1)-F1(i+2))>2 && abs(F1(i+2)-F1(i+3))>2 && abs(F1(i+3)-F1(i+4))>2
        M = mean(F1(i-5:i,)-mean(F1(i+4:i+14,);
        B = [B,M];
        s = sum(B);
    end
end

运行的错误如下所示:

FEED
索引超出矩阵维度。

出错 FEED (line 5)
        M = mean(F1(i-5:i,)-mean(F1(i+4:i+9,);
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : 11.262.xlsx
  • 2016-12-14 20:37:34, 3.24 M

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

512095518

专家顾问 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
liguoming01: 金币+10, ★★★很有帮助 2016-12-15 22:07:07
你把循环次数改动下,就不会报错了。我这里a数据是读取你的feed数据。你需要的平均值的差值存在c中,b中存的是时间节点。你对应再改下就能得到时间差值呢
CODE:
a = load('a.txt');
b = [];
c = [];
for n = 1:length(a)-4
    if abs(a(n)-a(n+1))>1.5 && abs(a(n+1)-a(n+2))>1.5 &&...
            abs(a(n+2)-a(n+3))>1.5 && abs(a(n+3)-a(n+4))>1.5
        b = [b;n];
        c = [c;mean(a(n-10:n))-mean(a(n+4:n+14))];
    end   
end

没有极限,只有超越!
2楼2016-12-14 22:19:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liguoming01

木虫 (正式写手)

引用回帖:
2楼: Originally posted by 512095518 at 2016-12-14 22:19:48
你把循环次数改动下,就不会报错了。我这里a数据是读取你的feed数据。你需要的平均值的差值存在c中,b中存的是时间节点。你对应再改下就能得到时间差值呢


a = load('a.txt');
b = [];
c = [];
for n = 1:le ...

您好,我按照您的算法算出来的数据,结果有点偏大。我的程序算法是这样的:
B =[];
C = [];
for i = 1: length(feed)-4
    if abs(feed(i)-feed(i+1))>2 && abs(feed(i+1)-feed(i+2))>2 && abs(feed(i+1)-feed(i+2))>2 && abs(feed(i+2)-feed(i+3))>2 && abs(feed(i+3)-feed(i+4))>2
        B = [B;i];
        C = [C;abs(mean(feed(i-10:i))-mean(feed(i+4:i+14)))];
        S = sum(C);
    end
end
代码基本上和您描述的类似。后面我看了一下结果,我发现,比如说如附图中的红圈所示,出现当数据中的第64,65,66,67,68,69,70,71个数同时出现它们后面的5个数的绝对值之差都大于2时,对数组中的数进行求差值了。我想这样,比如说当第64,65,66,67,68,69,70,71个数同时出现它们后面的5个数的绝对值之差都大于2时,我取第64个数前面的10个数均值减去第71个数后面的10个数均值,并将这些差值输入,这样能如何实现?
求解MATLAB中相邻数组的绝对值之差
错误分析.png

3楼2016-12-15 22:25:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 liguoming01 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 321求调剂 +16 y-yh 2026-04-01 18/900 2026-04-03 09:39 by hypershenger
[考研] 319求调剂 +17 太容易1018 2026-04-01 17/850 2026-04-03 09:17 by zhouxiaoyu
[考研] 求调剂!生物与医药专硕 +4 逆转陆先生 2026-04-01 5/250 2026-04-03 08:33 by Jaylen.
[考研] 085600专硕材料与化工348分求调剂 +9 上学啦! 2026-04-01 10/500 2026-04-03 01:13 by BruceLiu320
[考研] 265求调剂 +12 林深温澜 2026-04-01 15/750 2026-04-02 19:14 by 一只好果子?
[考研] 一志愿上海海洋大学083200食品学硕,求调剂,接受其他专业 +6 what张 2026-04-01 7/350 2026-04-02 16:48 by zzsw+
[考研] 调剂 +3 好好读书。 2026-04-01 6/300 2026-04-02 15:49 by liumengping
[考研] 一志愿同济大学323分(080500)求调剂 +6 yikeniu 2026-04-01 6/300 2026-04-02 14:19 by smileboy2006
[考研] 262求调剂 +5 励志一定发文章 2026-04-02 6/300 2026-04-02 12:51 by yulian1987
[考研] 372求调剂 +3 jj涌77 2026-04-02 3/150 2026-04-02 09:57 by olim
[考研] 367求调剂 +8 芋泥啵啵… 2026-03-28 8/400 2026-04-02 09:20 by olim
[考研] 266求调剂 +10 阳阳哇塞 2026-04-01 10/500 2026-04-02 09:07 by vgtyfty
[考研] 291求调剂 +20 Y-cap 2026-03-29 25/1250 2026-04-01 23:49 by 欣喜777
[考研] 环境工程调剂 +9 hyzzzzzzz. 2026-04-01 9/450 2026-04-01 14:20 by salamander`
[考研] 333求调剂 +4 阿科逸 2026-03-31 4/200 2026-04-01 09:11 by jp9609
[考研] 求调剂:085600材料与化工,考材科基,总分319 +17 678lucky 2026-03-31 21/1050 2026-04-01 01:40 by 1018329917
[考研] 315求调剂 +6 akie... 2026-03-28 7/350 2026-03-31 16:48 by asdfzly
[考研] 考研调剂求助 +7 13287130938 2026-03-31 7/350 2026-03-31 16:39 by 690616278
[考研] 269求调剂 +4 我想读研11 2026-03-31 4/200 2026-03-31 10:04 by cal0306
[考研] 083000环境科学与工程调剂,总分281 +4 橙子(胜意) 2026-03-30 4/200 2026-03-31 00:44 by Linzejun
信息提示
请填处理意见