回 帖 发 新 帖 刷新版面

主题:一个关于随机矩阵的小问题,谢谢大家!

要求产生一个n*n的矩阵,里面随机产生0,-1,1
我用了
y=rand(L,L);ys=zeros(size(y));
for i=1:L
    for j=1:L
       if y(i,j)<=0.3
           ys(i,j)=-1
       elseif 0.3<y(i,j)<0.6
           ys(i,j)=0
       else ys(i,j)=1
        end
    end
end

可是结果中ys()里只有-1和1,这个是什么原因,我应该怎么编呢?

回复列表 (共2个回复)

沙发

L=5;
y=rand(L,L);ys=zeros(size(y));
ys( y<(1/3))=-1;
ys( y>=(1/3) & y<(2/3))=0;
ys( y>=(2/3) & y<=1)=1;

板凳

你的问题在于用 a<y<b , 这等于 (a<y)<b,并不等于 y>a && y<b.

我来回复

您尚未登录,请登录后再回复。点此登录或注册