matlab的自动生成矩阵

自动生成一个50*50的矩阵,要求:(1)所有数不能超过98,不能小于70。 (2) 每一列的90分以上20%,80~90分50%,70~80为30%。

在线等,急,哪个大神帮个忙啊!!!!!!很急

matlab自动生成矩阵方法如下:
1.%自动生成一个50*50的矩阵;要求:(1)所有数不能超过98,不能小于70。 (2) 每一列的90分以上20%,80~90分50%,70~80为30%。
%如果需要产生n到m范围内的随机整数,可以:rand()*(Rand_Max-Rand_Min)+Rand_Min
n=10;
n_max=98;
n_min=91;

m=25;
m_max=90;
m_min=81;

l=15;
l_max=80;
l_min=70;
flag=1;
result=zeros(50,50);
for i=1:50
for j=1:n
result(j,i)=uint16(rand()*(n_max-n_min))+n_min;
end
for j=1:m
result(j+n,i)=uint16(rand()*(m_max-m_min))+m_min;
end
for j=1:l
result(j+n+m,i)=uint16(rand()*(l_max-l_min))+l_min;
end
end
result
2.生成元素为0-1之间的n维方阵,以n=5为例,在matlab主窗口中输入 A=rand(5),回车;
3.生成元素为0-8之间的N维方阵,以N=5为例,在MATLAB主窗口中输入 B=round(8*rand(5)),回车。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-10
%自动生成一个50*50的矩阵,要求:(1)所有数不能超过98,不能小于70。 (2) 每一列的90分以上20%,80~90分50%,70~80为30%。
%如果需要产生n到m范围内的随机整数,可以:rand()*(Rand_Max-Rand_Min)+Rand_Min
n=10;
n_max=98;
n_min=91;

m=25;
m_max=90;
m_min=81;

l=15;
l_max=80;
l_min=70;
flag=1;
result=zeros(50,50);
for i=1:50
for j=1:n
result(j,i)=uint16(rand()*(n_max-n_min))+n_min;
end
for j=1:m
result(j+n,i)=uint16(rand()*(m_max-m_min))+m_min;
end
for j=1:l
result(j+n+m,i)=uint16(rand()*(l_max-l_min))+l_min;
end
end
result
这是最简单的形式,更复杂的你自己写写吧= =本回答被提问者采纳
相似回答