Free考研资料 - 免费考研论坛

 找回密码
 注册
打印 上一主题 下一主题

关于随机向量的模拟问题,怎样避免全零的行向量出现?

[复制链接]
跳转到指定楼层
楼主
笔为剑 发表于 14-1-12 10:46:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

我用matlab写了一个模拟生成随机向量(所有元素均为0或1)的代码。
我想在代码里进行控制,若发现某个随机行向量的所有元素全是0,就重新模拟一次。
代码如下:

out1=zeros(I,K); %矩阵初值为全零
suiji_0=rand(I,K); % 生成一个随机数矩阵
% 如果随机数矩阵里第i行第k列的元素大于0.5,就把该元素设为1
for i=1:I
for k=1:K
if suiji_0(i,k)> 0.5
out1(i,k)=1;
end
end
kongzhi=sum(out1(i,:)); % 将该行向量的各元素相加,由此看它是否为全零向量
if kongzhi==0
i=i-1; % 如果发现属性向量是全零向量,就重新模拟一次
end
end
xlswrite('item_moni.xls',out1,'q_matrix');

可是,运行完程序以后,发现仍然有全零的行向量出现。这个是怎么回事啊?
谢谢了!

沙发
emanon429 发表于 14-1-12 17:36:06 | 只看该作者
i=i-1; % 如果发现属性向量是全零向量,就重新模拟一次

这样是不行的

比如这个程序:
for i=1:1:10
i
i=i-100;
end

不管你在循环内部怎么改变i,这个循环还是执行10次。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系我们|Free考研资料 ( 苏ICP备05011575号 )

GMT+8, 24-12-2 17:09 , Processed in 0.098310 second(s), 10 queries , Gzip On, Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表