lcw 发表于 2006-9-11 17:55

如何从曲线上读出任一点的坐标?

想从曲线上得到尖峰对应的频率,利用下面语句可以得到最高的尖峰对应的频率,第二个高的尖峰对应的频率如何得到呢?谢谢!
index=find(power(1:floor(n/2-1))==max(power(1:floor(n/2-1))));
s=num2str(sprintf('%5.1f Hz',freq(index)));
plot(freq(index),power(index),['*','r']);

jimin 发表于 2006-9-11 18:51

用分区间的方法不知道可不可以

wuz222 发表于 2006-9-11 19:12

好好

realhappy 发表于 2006-9-11 19:27

用ginput命名可以读出图上坐标。

lcw 发表于 2006-9-11 20:07

谢谢了!

[ 本帖最后由 lcw 于 2006-9-11 20:19 编辑 ]

yukeyyxh 发表于 2006-9-13 21:01

如果lcw要的是图中曲线上任意一点的精确值,那么我对realhappy的回答有些疑义:
ginput命名可以读出图上坐标吗?
ginput给出的是自己鼠标点击点的坐标,未必是图上的坐标(我指的是曲线部分),其值根本不精确!
即使用鼠标点中该点,但是用plot画出的图,并不是所有定义域内的点所构成的图,只是有限点连接所成,所以未必就是准确值。
我认为只有根据函数算出的数才精确。

bainhome 发表于 2006-9-13 22:10

用data cursor

realhappy 发表于 2006-9-14 09:06

原帖由 yukeyyxh 于 2006-9-13 21:01 发表
如果lcw要的是图中曲线上任意一点的精确值,那么我对realhappy的回答有些疑义:
ginput命名可以读出图上坐标吗?
ginput给出的是自己鼠标点击点的坐标,未必是图上的坐标(我指的是曲线部分),其值根本不精确 ...
那是不得已而为之的手段,有函数还用去找图上的坐标吗?

lcw 发表于 2006-9-14 09:25

原帖由 yukeyyxh 于 2006-9-13 21:01 发表
如果lcw要的是图中曲线上任意一点的精确值,那么我对realhappy的回答有些疑义:
ginput命名可以读出图上坐标吗?
ginput给出的是自己鼠标点击点的坐标,未必是图上的坐标(我指的是曲线部分),其值根本不精确 ...


这个怎么用啊?
试了不行.

多情清秋 发表于 2006-9-14 10:10

原帖由 lcw 于 2006-9-14 09:25 发表



这个怎么用啊?
试了不行.

ginput(n)
n为你要显示的点数

命令窗口输入该命令后,用鼠标到你的图上去点

多情清秋 发表于 2006-9-14 10:11

原帖由 yukeyyxh 于 2006-9-13 21:01 发表
如果lcw要的是图中曲线上任意一点的精确值,那么我对realhappy的回答有些疑义:
ginput命名可以读出图上坐标吗?
ginput给出的是自己鼠标点击点的坐标,未必是图上的坐标(我指的是曲线部分),其值根本不精确 ...


ginput得到的值误差很大的

miao7mijao 发表于 2006-9-14 13:33

N=5120;
f=5120;
n=0:(N-1);
t=n/f;
x=sin(2*pi*50*t);
X=fft(x);
f=f*(1:N)/N;
plot(f,abs(X),'-');
axis();
set(gca, 'XTickMode', 'manual', 'XTick', );
index=find(power(1:floor(n))==max(power(1:floor(n))));
s=num2str(sprintf('%5.1f Hz',freq(index)));
plot(freq(index),power(index),['*','r']);
xlabel('Frequency');
ylabel('|F(k)|');
grid on;
楼主,我想让我的最高尖峰的频谱显示出来,为什么显示不出来呢?

lcw 发表于 2006-9-14 15:11

我不是很理解,全都是试着来
感觉你没有把power先计算出来.
index还没有值.

happy 发表于 2006-9-14 15:25

N=5120;
f=5120;
n=0:(N-1);
t=n/f;
x=sin(2*pi*50*t);
X=fft(x);
f=f*(1:N)/N;
plot(f,abs(X),'-');
axis();
set(gca, 'XTickMode', 'manual', 'XTick', );
=max(abs(X));
%index=find(abs((1:floor(n)))==max(abs(X(1:floor(n)))));
hold on;
plot(f(I),C,'r*');
xlabel('Frequency');
ylabel('|F(k)|');
grid on;

是这个意思不?

miao7mijao 发表于 2006-9-14 21:39

谢谢!happy!
我试试!
还有楼主,power是计算什么的?
页: [1] 2
查看完整版本: 如何从曲线上读出任一点的坐标?