gxqcn 发表于 2011-11-16 13:47:40

5# gxqcn
查查 cumsum函数
wayne 发表于 2011-11-16 13:39 http://bbs.emath.ac.cn/images/common/back.gif

这个函数用过,起累加作用。
不知怎么把连续的奇偶行数据进行归并?

G-Spider 发表于 2011-11-16 13:55:19

11# gxqcn
能否举个例子,不明白。“挫”被你发现地方了。:lol

wayne 发表于 2011-11-16 13:56:55

没太明白老大的需求.
能否举例子说明

wayne 发表于 2011-11-16 14:02:17

6# G-Spider
:)B=A(1:2:end,:)+A(2:2:end,:);

G-Spider 发表于 2011-11-16 14:11:49

14# wayne
:o 漂亮。

gxqcn 发表于 2011-11-16 14:22:10

从一个.csv文件中以行为单位一次读取时间间隔、XYZ的运动量:[ dt, dx, dy, dz ] = textread( filename, '%n%n%n%n%*[^\n]', 'delimiter', ',' );接下来,建立时间轴(用到了 cumsum 函数):t = cumsum( dt, 1 );   % 建立时间轴可得到即时速度V,以便绘制 V-t 图:Vx = dx ./ dt;
Vy = dy ./ dt;
Vz = dz ./ dt;
V = sqrt( Vx .* Vx + Vy .* Vy + Vy .* Vy );还可进一步得到即时加速度Acceleration,以便绘制 A-t 图:Ax = diff([ 0; Vx ]) ./ dt;
Ay = diff([ 0; Vy ]) ./ dt;
Az = diff([ 0; Vz ]) ./ dt;
A = sqrt( Ax .* Ax + Ay .* Ay + Az .* Az );更进一步,可得到加加速度Jerk,以便绘制 J-t 图:Jx = diff([ 0; Ax ]) ./ dt;
Jy = diff([ 0; Ay ]) ./ dt;
Jz = diff([ 0; Az ]) ./ dt;
J = sqrt( Jx .* Jx + Jy .* Jy + Jz .* Jz );现在的问题是:
由于最初的数据是整型的(发想设备的脉冲值),存在取整误差,
导致最后的 Jerk 变化比较剧烈(它相当于脉冲对时间的3次求导),与理论数据偏差较大,
所以想适当平滑一下:
1、在算加速度时,不是求相邻两个速度的diff,而是跳行取delta;
2、同样的,在计算加加速时,也不是逐行diff,尝试用隔行diff。
以上是我的初步想法,不知大家可有什么好的建议?

gxqcn 发表于 2011-11-16 14:27:03

11# gxqcn
能否举个例子,不明白。“挫”被你发现地方了。:lol
G-Spider 发表于 2011-11-16 13:55 http://bbs.emath.ac.cn/images/common/back.gif

我是湖北人,还曾地地道道当了4年武汉人,所以对这个字眼相当地敏感。

wayne 发表于 2011-11-16 14:50:17

16# gxqcn
老大,是不是要先做一下 插值

wayne 发表于 2011-11-16 14:53:43

17# gxqcn
我也是湖北人,嘿嘿,
不过,很挫 好像不仅仅是湖北人爱说的吧

gxqcn 发表于 2011-11-16 14:56:32

不用插值。
只是分析下一些运动曲线,源数据由于圆整误差,导致曲线不好(毛刺很重)。
应该采取图像处理的模糊手段(而不是锐化),还原其本来面目。
现在我已做好了,感谢楼上二位的鼎力相助。
页: 1 [2] 3
查看完整版本: 如何删除MatLab矩阵中偶数行数据?