请高手指教,急!!!
请高手指教,急!!!
呵呵,是不是要看你需要产生何种随机分布?
如果是需要产生正态分布的随机数你可以用normrnd('均值',‘标准差’,‘行数’,‘列数’)
A=normrnd(2,0.5,50,50); %产生均值为2,标准差为0.5的50*50矩阵A
B=reshape(A,50*50,1);
mean(B) %求矩阵均值
std(B) %求矩阵标准差
呵呵,不过产生结果不一定完全就是2和0.5,毕竟是随机数有一定的偏差在里面
你可以试试,如果想产生其他分布的随机数,找找对应分布函数命令就可以了
你也可以参考random函数
呵呵,问题出在“iniden=rand(nx,ny)<0.3;”这句话上
最后iniden保存的是:如果rand(nx,ny)中的值<0.3为1(真),反之则为0(假),这和C语言类似,结果就是iniden中保存的都是0或1的逻辑值,而不是一般意义上的数值
A=rand(2,2)
A =
0.2618 0.7839
0.7085 0.9862
iniden=A<0.3
iniden =
1 0
0 0
这能帮助你理解
如果你想产生值都在0.3以下的矩阵,不妨试试
B=rand(4,4)*0.3
B =
0.1420 0.2487 0.2154 0.0263
0.2708 0.0499 0.1708 0.1330
0.1353 0.1182 0.1382 0.1099
0.2414 0.1562 0.1336 0.0908
呵呵,希望这样能解决你的问题
如果你想产生均值为0.25,并且所有值都小于0.3的矩阵
可以用
>> normrnd(0.25,0.03,5,5)
ans =
0.2944 0.2401 0.2246 0.2464 0.2370
0.2841 0.2247 0.2426 0.2480 0.2476
0.2295 0.2649 0.2699 0.2646 0.2961
0.2112 0.2947 0.2244 0.2321 0.2318
0.2478 0.2336 0.2140 0.2455 0.2096
呵呵,不知道我理解得对不对
[此贴子已经被作者于2007-3-23 18:06:25编辑过]