如何从曲线上读出任一点的坐标?
想从曲线上得到尖峰对应的频率,利用下面语句可以得到最高的尖峰对应的频率,第二个高的尖峰对应的频率如何得到呢?谢谢!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']); 用分区间的方法不知道可不可以 好好 用ginput命名可以读出图上坐标。 谢谢了!
[ 本帖最后由 lcw 于 2006-9-11 20:19 编辑 ] 如果lcw要的是图中曲线上任意一点的精确值,那么我对realhappy的回答有些疑义:
ginput命名可以读出图上坐标吗?
ginput给出的是自己鼠标点击点的坐标,未必是图上的坐标(我指的是曲线部分),其值根本不精确!
即使用鼠标点中该点,但是用plot画出的图,并不是所有定义域内的点所构成的图,只是有限点连接所成,所以未必就是准确值。
我认为只有根据函数算出的数才精确。 用data cursor 原帖由 yukeyyxh 于 2006-9-13 21:01 发表
如果lcw要的是图中曲线上任意一点的精确值,那么我对realhappy的回答有些疑义:
ginput命名可以读出图上坐标吗?
ginput给出的是自己鼠标点击点的坐标,未必是图上的坐标(我指的是曲线部分),其值根本不精确 ...
那是不得已而为之的手段,有函数还用去找图上的坐标吗? 原帖由 yukeyyxh 于 2006-9-13 21:01 发表
如果lcw要的是图中曲线上任意一点的精确值,那么我对realhappy的回答有些疑义:
ginput命名可以读出图上坐标吗?
ginput给出的是自己鼠标点击点的坐标,未必是图上的坐标(我指的是曲线部分),其值根本不精确 ...
这个怎么用啊?
试了不行. 原帖由 lcw 于 2006-9-14 09:25 发表
这个怎么用啊?
试了不行.
ginput(n)
n为你要显示的点数
命令窗口输入该命令后,用鼠标到你的图上去点 原帖由 yukeyyxh 于 2006-9-13 21:01 发表
如果lcw要的是图中曲线上任意一点的精确值,那么我对realhappy的回答有些疑义:
ginput命名可以读出图上坐标吗?
ginput给出的是自己鼠标点击点的坐标,未必是图上的坐标(我指的是曲线部分),其值根本不精确 ...
ginput得到的值误差很大的 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;
楼主,我想让我的最高尖峰的频谱显示出来,为什么显示不出来呢? 我不是很理解,全都是试着来
感觉你没有把power先计算出来.
index还没有值. 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;
是这个意思不? 谢谢!happy!
我试试!
还有楼主,power是计算什么的?
页:
[1]
2