rand(m,n)产生随机矩阵 然后每行的每个元素除以这行各个元素之和即可
fix - 向零取整,即取接近于零的整数.例如:a = [-1.9, -0.2, 3.4, 5.6, 7.0, 2.4+3.6i]fix(a)ans = columns 1 through 4 -1.0000 0 3.0000 5.0000 columns 5 through 6 7.0000 2.0000 + 3.0000irand(5)生成5*5的随机数矩阵.(90-10+1)*rand(5)生成5*5的
rand(3,3)是生成3*3的伪随机数矩阵,每个元素服从(0,1)的均匀分布fix是向最近的整数取整最后的结果是生成1-15上离散均匀分布的伪随机数
很简单a=round(rand(100,1)*100);就可以了,先生成100个随机数再放大100倍,再四舍五入,取为整数.你可以试试看!
>> random = 100+100*rand(5,6) random = 195 176 161 140 105 120 123 145 179 193 135 119 160 101 192 191 181 160 148 182 173 141 100 127 189 144 117 189 113 119
y=100rand(10,10);[rows,cols,vals] = find( 40<y & y<60 ); for i=1:length(rows) y(rows(i),cols(i))=NaN;end;y = NaN 66 87 NaN 70 NaN NaN 79 NaN 66 90 73 NaN 19 NaN 64 5 NaN 65 33 NaN 89 85 12 NaN NaN 94 17 2 90 85 99 21 20 NaN
round(unifrnd(1,8,8,8))8行8列均匀分布
round(15+25*rand(1,100))再看看别人怎么说的.
m=4; n=5; R=rand(m,n); min=R(1); for i=2:m*n if R(i) min=R(i); else end end for i=1:m for j=1:n if R(i,j)==min disp(['最小数为' num2str(min) '行为' num2str(i) ',列为' num2str(j)]) end end end
% function num=randn(min_n,max_n,m,n)%思路:%对于某一列,先产生该列第一个随机数a,其范围为[min_n,max_n]%然后产生该列第二个随机数b,其范围为[min_n,max_n-a]%之后产生该列第三个随机数c,其范围为[min_n,max_n-a-b]%终