声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1536|回复: 4

[非线性振动] [求助]用Matlab后处理的问题

[复制链接]
发表于 2010-8-19 03:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
做出几组数据,想用MATLAB处理下 但是不太会MATLAB  各位大侠帮我看一下  我也写了一点MFILE

假设我从MATLAB的TIMEHIST PRO得到4组变量数据,比如说分别是时间,位移,速度,加速度.都有相同的数量,而且分别参照时间

我如果想将数据分成数份做RMS来表示 是不是应该如下
%比如a=time, b=displacement c=velocity d=acceleration
%求数量
e=size(abs(a))
%设置份数 比如5

f=5
for i=1:e/f
%在计算X1 Y1 Y2 Y3时出现问题 没有出现我想象中的一组数据,请问应该怎么才能出现一组数据呢? 谢谢!
X1=Mean(a(1+(i-1)*f:i*f))
Y1=std(b(1+(i-1)*f:i*f))
Y2=std(c(1+(i-1)*f:i*f))
Y3=std(d(1+(i-1)*f:i*f))
Plot(X1 Y1)
Plot(X1 Y2)
Plot(X1 Y3)

点评

启发引导循循善诱: 0.0
Move to "Matlab"?  发表于 2010-8-21 23:21
启发引导循循善诱: 0
Move to "Matlab"?  发表于 2010-8-21 23:21
回复
分享到:

使用道具 举报

发表于 2010-8-19 09:22 | 显示全部楼层
1. e=size(abs(a)) 应该为 e=length(abs(a))或者e=size(a,1)
2.如果e不恰好是5的倍数也有麻烦


发表于 2010-8-19 11:45 | 显示全部楼层
e=size(abs(a))中的abs好像不需要, size(a,1)也不一定对! time可能为列或行向量矩阵
还有应该加上floor, loop也不太对, 试试
  1. f=5; ee=floor(length(a)/5);
  2. X1=zeros(5,1); Y1=X1; Y2=X1; Y3=X1;
  3. for ii=1:f, ppp=1+(ii-1)*ee:ii*ee;
  4.    X1(ii)=Mean(a(ppp)); Y1(ii)=std(b(ppp));
  5.    Y2(ii)=std(c(ppp)); Y3(ii)=std(d(ppp));
  6. end
  7. Plot(X1 Y1); Plot(X1 Y2); Plot(X1 Y3)
复制代码
 楼主| 发表于 2010-8-19 13:27 | 显示全部楼层
先谢过各位大侠,小弟再研究研究
发表于 2010-8-22 20:31 | 显示全部楼层
for循环里面你最后算了只存在一个X1,Y1,Y2,Y3,不信你去掉plot先查看其值。可以先建4个数组,然后把值付进去,然后用plot。你这样plot绝对没有一条线,就一个点。。。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-16 16:00 , Processed in 0.059445 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表