ludian 发表于 2008-11-30 15:37

如何求一组数据里最接近某个值的数在哪里

比如采样一个正弦信号
想找到相位 pi/4 的那个点

如果将所有数都减去所求点的值
然后求其绝对值的最小点所在
也可以但是觉得运算量太大
处理大批数据时太耗费时间

大家帮忙看看有什么更简单的办法
谢谢

wxl789 发表于 2008-11-30 19:56

回复 楼主 ludian 的帖子

你的这个方法对呀。但确实麻烦了点。

如果要改进的话,好像没有什么好的办法了吧。
如果有,也要结合你的系统特点来做了,通性通法大概没有吧。。

ChaChing 发表于 2008-11-30 21:01

不太确定楼主的需求!
但感觉楼主好像要使用for loop的样子, 这是刚接触matlab易犯的问题

试试 xx=sin(2*pi*); =min(abs(xx-0.707))
好像不麻烦也不耗费时间!?

科技在线 发表于 2008-11-30 21:03

题目没有看懂,可否详细说明

friendchj 发表于 2008-11-30 23:30

回复 板凳 ChaChing 的帖子

用这个方法,即使数据量大点应该也很快,这种问题不建议用for循环,呵呵。如果数据没有规律,只能这样了,感觉

ludian 发表于 2008-12-1 14:59

回复 板凳 ChaChing 的帖子

多谢我只需要序列号就行了 用的是这个
t1 = find ( abs( z1 - sin(1.25*pi)) == min ( abs( z1 - sin(1.25*pi)) ) ) ;
和你这个基本一样吧
页: [1]
查看完整版本: 如何求一组数据里最接近某个值的数在哪里