MATLAB问题,为什么我用hist函数出不来直方图?

代码如下:clearall;L=8;A=33;C=1;Y(1)=1;fori=2:(2^L+1)Y(i)=mod((A*Y(i-1)+C),(2^L));end;subp... 代码如下:
clear all;
L=8;
A=33;
C=1;
Y(1)=1;
for i=2:(2^L+1)
Y(i)=mod((A*Y(i-1)+C),(2^L));
end;
subplot(1,3,1);plot(Y,'*');
for i=1:(2^L+1)
U(i)=Y(i)/(2^L);
end;
subplot(1,3,2);plot(U,'*');
for i=1:(2^L+1)
X(i)=-log(U(i));
end;
subplot(1,3,3);plot(X,'*');
dx=0.0001;
x=0:dx:6;
figure(2);
hist(X,x);
其中数组U服从0~1上的均匀分布(使用了混合同余法),数组X服从λ=1的负指数分布,为什么我用hist函数得不到直方图?对MATLAB不是很熟悉,请大神指教!
展开
 我来答
匿名用户
2015-10-08
展开全部

直接写hist(X);就可以了,其他更多设置可以在命令窗口输入help hist查看

 

输出效果

更多追问追答
追问

谢谢回答!

可为什么我MATLAB并没有出直方图?

追答
  1. 在clear all后面加上close all; clc; 试试,看看是不是其他参数的影响

  2. 看下你的程序里X是什么值,我这边运行的X是1行257列的向量

     

代码:

clear all
close all
clc
 
L=8;A=33;
C=1;
Y(1)=1;
for i=2:(2^L+1)   
    Y(i)=mod((A*Y(i-1)+C),(2^L));
end
subplot(1,3,1);
plot(Y,'*');
for i=1:(2^L+1)    
    U(i)=Y(i)/(2^L);
end
subplot(1,3,2);
plot(U,'*');
for i=1:(2^L+1)    
    X(i)=-log(U(i));
end
subplot(1,3,3);
plot(X,'*');
dx=0.0001;
x=0:dx:6;
figure(2);
hist(X);

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式