MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [MATLAB基础] 请大虾帮忙看看这几行程序为什么不能输出满足要求的数据呀!! (https://www.labfans.com/bbs/showthread.php?t=13562)

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

回复: 请大虾帮忙看看这几行程序为什么不能输出满足要求的数据呀!!
 
[QUOTE=fooeye;45263]想得到 满足条件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[/QUOTE]

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

chuhesky 2011-06-08 13:03

回复: 请大虾帮忙看看这几行程序为什么不能输出满足要求的数据呀!!
 
[QUOTE=fooeye;45263]想得到 满足条件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[/QUOTE]
可以这样试试!
a1=2.5*rand(4,5);
a2=2.5*rand(4,5);


所有时间均为北京时间。现在的时间是 05:31

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.