aachuangping 发表于 2009-2-27 21:24

画出的图形都是点...

大家好!!我叫HP!
籍贯:广西柳州市,今年还很年轻,今年大三了,可以猜到是多大了。呵呵!平时学习软件这一块,但是不是非常精通。比较擅长的是asp网页设计。
最近在研究用matlab写高斯噪声,然后用来分析PSK抗噪声性能。我写了个函数,但是画出的图形好像和想象中的不一样,画出来的都是点……希望得到各位好友的帮忙。我的QQ号是272264246,或者我的邮箱是hp991@sina.com或者hp991@yahoo.cn

function=gngauss(m,sgma)
if nargin==0,
m=0;sgma=1;
elseif nargin==1,
sgma=m;m=0;
end;
u=rand();
z=sgma*(sqrt(-2*log(1/(1-u))));
u=rand();
gsrv1=m+z*cos(2*pi*u);
gsrv2=m+z*sin(2*pi*u);

[ 本帖最后由 ChaChing 于 2009-2-27 22:02 编辑 ]

ChaChing 发表于 2009-2-27 21:58

回复 楼主 aachuangping 的帖子

画出的图形? LZ说清楚些吧!

friendchj 发表于 2009-2-28 00:00

回复 楼主 aachuangping 的帖子

呵呵,没见到画图的函数

aachuangping 发表于 2009-2-28 13:52

回复 沙发 ChaChing 的帖子

哦~~!我是在命令窗口调用了plot(gngauss)函数。但是画出来的就是一条有点构成的水平线
我觉得很奇怪,难道是我的function程序错误?试试帮帮忙看~谢谢!

ChaChing 发表于 2009-2-28 14:31

回复 地板 aachuangping 的帖子

LZ这样画, 相当於画plot(gsrv1), 而gsrv1为一单点复数, 当然仅画出一点!
试试函数gngauss最後一行增加, 看看算出值, 并於命令窗口用plot(gngauss,'o'), 看看那一点是否就是gsrv1!

aachuangping 发表于 2009-2-28 15:00

回复 5楼 ChaChing 的帖子

你好chaching!谢谢你的及时回复。我试了试,但是画出来的就在水平位置为1,.高度约为0.5的一个小圈圈~~为什么呢?
除此之外,然后我在命令窗口中输入
u=rand(1,1000);
y=gngauss(1,0.02);
plot(u,y,'o');
最近得出的是一条由"O"形成的水平线。但是还是水平线。这是为什么呢??盼回复~~谢谢

ChaChing 发表于 2009-2-28 15:24

回复 6楼 aachuangping 的帖子

函數gngauss最後一行增加, ex
function=gngauss(m,sgma)
if nargin==0, m=0;sgma=1; elseif nargin==1, sgma=m;m=0; end;
u=rand(); z=sgma*(sqrt(-2*log(1/(1-u))));
u=rand(); gsrv1=m+z*cos(2*pi*u); gsrv2=m+z*sin(2*pi*u);


gsrv1為一單點複數, 當然僅畫出一點!
執行y=gngauss(1,0.02); 輸出ans =   1.0000 - 0.0101i   1.0000 + 0.0059i
表示gsrv1=1-0.0101i,gsrv2=1+0.0059i
若plot(y,'o'), 看看那一點是否就是gsrv1! x=1為real part, y=-0.0101 為imag part
若plot(u,y,'o'), 因y為複數會出現警告Warning: Imaginary parts of complex X and/or Y arguments ignored, 此時等效plot(u,real(y),'o')

建议LZ看看Help文件!

friendchj 发表于 2009-2-28 15:35

你的函数返回值是一个数,那样画应该是一条直线,试试下面的。
u=rand(1,1000);
y=[];
for i=1:length(u)
    y=;
end
plot(y,'.')

aachuangping 发表于 2009-2-28 16:36

回复 7楼 ChaChing 的帖子

哦~~这个我知道,就是我的虚部被忽略掉的意思~我是最近才开始自己研究matlab的东西,以前一直都在弄asp代码,所以有很多基础的地方不是很把握住,所以请包含啊~~(+_+),再加上本人的英语水平有限,所以......
所以希望能得到你们的帮助啦~
我通过以下这段命令;plot(t,real(y),'--');hold on;plot(t,imag(y),'--');好像也不正确哦??
可以给点意见吗?

aachuangping 发表于 2009-2-28 16:41

回复 8楼 friendchj 的帖子

嗯!!ok!我把它换成plot(y,'--')就得了~~真的很谢谢啊~~
在这里收益颇多啊~~感谢大家!!
如果大家又在asp方面不懂的,我会照顾大家的

ChaChing 发表于 2009-2-28 19:09

抱歉! 直到刚刚看到8楼大牛的程序, 才猜到LZ要画什麽样的图!
原来LZ是想检查函数产生的值, 是否真是噪声型态? 是吧?
水平有限, 还是需要LZ一开始说的更明白些! 但我也忘了问清楚:@L
页: [1]
查看完整版本: 画出的图形都是点...