数学建模社区-数学中国

标题: 由原矩阵产生一个随机的新的矩阵 [打印本页]

作者: zhongdan    时间: 2011-8-14 11:30
标题: 由原矩阵产生一个随机的新的矩阵
      原矩阵a是一个12*10的矩阵,随机产生一个新的矩阵b,b的大小是4*10.而b(1,1)是从a(1,1)、a(2,1)、a(3,1)中随机产生的。后面也以此类推。求高人指点!!
作者: china19901015    时间: 2011-8-14 12:46
for i=1:12
    for j=1:10
        a(i,j)=rand(1);
    end
end
a
%%%随机产生一个矩阵%%%

for i=1:4
    for j=1:10
        
        rand('state',sum(100*clock));  m=rand(1)
        %%随机产生一个随机数 0<m<1%%
        if(m<1/3)
            n=1;
        else if(m<2/3)
                n=2;
            else
                n=3;
            end
        end
        %%判断出m的值,如果m<1/3,n=1;如果1/3<m<2/3,n=2;如果2/3<m<1,n=3;
        n
        
        b(i,j)=a((3*(i-1)+n),j);
        %%根据产生的n值,给b矩阵赋值,观察a((3*(i-1)+n),j);其中n是随机的,符合题意要求%%
    end
end
b
作者: zhongdan    时间: 2011-8-14 15:02
china19901015 发表于 2011-8-14 12:46
for i=1:12
    for j=1:10
        a(i,j)=rand(1);

非常~~十分~~万分的感谢啊!!!您真是好人!!
作者: zcw@#¥    时间: 2011-8-14 15:13
谢谢分享,。
作者: china19901015    时间: 2011-8-14 19:36
zhongdan 发表于 2011-8-14 15:02
非常~~十分~~万分的感谢啊!!!您真是好人!!

你介个,要看清楚啊?
最重要的是这一句代码
  b(i,j)=a((3*(i-1)+n),j);
同时还要定义一下n的取值!
作者: zhongdan    时间: 2011-8-15 20:44
china19901015 发表于 2011-8-14 19:36
你介个,要看清楚啊?
最重要的是这一句代码
  b(i,j)=a((3*(i-1)+n),j);

恩恩,好的!
作者: alair005    时间: 2012-2-7 10:58
囧了,下了无数不知道用哪个有用9043737028301478
作者: 李——建辉    时间: 2012-2-7 12:00
china19901015 发表于 2011-8-14 12:46
for i=1:12
    for j=1:10
        a(i,j)=rand(1);

a=rand(12,10)
for i=1:4
    for j=1:10
        b(i,j)=a(3*(i-1)+ceil(rand*3),j);
    end
end
b
这样就行,或许用 arrayfun能更简单




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5