我想要在MATLAB中查找单元格阵列中“有效”的变化,以便进行运动。查找单元格阵列中的高峰和低峰点MATLAB
E.g.我有YT,代表人脸交互的偏航演示中的动作。 YT可以根据从80x1到400x1之间的任何地方的互动来改变。前几行可能是
YT = {-7 -8 -8 -8 -8 -9 -9 -9 -6 ...}
我想记录下
在整个单元阵列;
1)计数我可以findpeak而不是低峰做到这一点的高峰和低峰
数*
2)测量每个峰之间的区别 -
对于这个例子,峰值-9和-6之间的差值为+3。所以报告1 + 3的峰值变化。目前我只对+/- 3的变化感兴趣,但这可能会改变,所以我需要一个门槛?
,然后用细胞(重复对于在单元阵列)的X数目
3)的变化的计数数 - 在这个例子中,3改变
3)的显著变化计数数 -/+ 3
4)描述的变化 - - -1 1种变化,-1 1种变化,的3
1个变化对于该示例,1个变化任何帮助将不胜感激,一点点的MATLAB noob。
谢谢!
嗨戴夫,这真的很有用。然而,我不能让pospeaks [1:end-1] -negpeaks [2:end]跑步。有任何想法吗?我将[]更改为(),我得到一个矩阵尺寸错误(pospeaks是9x1,negpeaks是10x1) –
对不起,方括号 - 我一直在写MEX文件,所以我的C语言和Matlab语法混合起来!我必须承认,我愚蠢地认为你会有像负峰一样多的积极因素,但显然生活从未如此简单!您会在上面的解决方案中看到,我已经进行了大量编辑(由[编辑]和[/编辑]分隔),这提供了更强大的解决方案。我相信它可以写得更优雅,但目前我无法想象如何!我希望它有帮助。 – Dave
非常感谢戴夫! –