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)中随机产生的。后面也以此类推。求高人指点!! {:soso_e196:}

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 static/image/common/back.gif
for i=1:12
    for j=1:10
        a(i,j)=rand(1);


非常~~十分~~万分的感谢啊!!!您真是好人!!:hug:

zcw@#¥ 发表于 2011-8-14 15:13

谢谢分享,。

china19901015 发表于 2011-8-14 19:36

zhongdan 发表于 2011-8-14 15:02 static/image/common/back.gif
非常~~十分~~万分的感谢啊!!!您真是好人!!

你介个,要看清楚啊?
最重要的是这一句代码
  b(i,j)=a((3*(i-1)+n),j);
同时还要定义一下n的取值!

zhongdan 发表于 2011-8-15 20:44

china19901015 发表于 2011-8-14 19:36 static/image/common/back.gif
你介个,要看清楚啊?
最重要的是这一句代码
  b(i,j)=a((3*(i-1)+n),j);


恩恩,好的!:)

alair005 发表于 2012-2-7 10:58

李——建辉 发表于 2012-2-7 12:00

china19901015 发表于 2011-8-14 12:46 static/image/common/back.gif
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能更简单
页: [1]
查看完整版本: 由原矩阵产生一个随机的新的矩阵