登录论坛

查看完整版本 : [MATLAB基础] 请大虾帮忙看看这几行程序为什么不能输出满足要求的数据呀!!


fooeye
2011-06-05, 20:22
想得到 满足条件0.1<a1<2.5, 0.1< a2<2.5 的数据各20个
但是不是每次都能输出20组数据,且不满足在所要求的区间。到底应该怎么写才对呀?
代码如下:
t = 1;
while t<= 20

d=randn(1,1);
e=randn(1,1);
k=exp(d);
f=exp(e);
if(k>=0.1)&&(k<=2.5)
a1(t)=k;
end
if(f>=0.1)&&(f<=2.5)
a2(t)=f;
end
t = t+1;
end

anbcjys
2011-06-06, 08:50
想得到 满足条件0.1<a1<2.5, 0.1< a2<2.5 的数据各20个
但是不是每次都能输出20组数据,且不满足在所要求的区间。到底应该怎么写才对呀?
代码如下:
t = 1;
while t<= 20

d=randn(1,1);
e=randn(1,1);
k=exp(d);
f=exp(e);
if(k>=0.1)&&(k<=2.5)
a1(t)=k;
end
if(f>=0.1)&&(f<=2.5)
a2(t)=f;
end
t = t+1;
end

先用rand 生成0 1之间的 然后转化就可以了

chuhesky
2011-06-08, 13:03
想得到 满足条件0.1<a1<2.5, 0.1< a2<2.5 的数据各20个
但是不是每次都能输出20组数据,且不满足在所要求的区间。到底应该怎么写才对呀?
代码如下:
t = 1;
while t<= 20

d=randn(1,1);
e=randn(1,1);
k=exp(d);
f=exp(e);
if(k>=0.1)&&(k<=2.5)
a1(t)=k;
end
if(f>=0.1)&&(f<=2.5)
a2(t)=f;
end
t = t+1;
end
可以这样试试!
a1=2.5*rand(4,5);
a2=2.5*rand(4,5);