matlab中生成一个m*n矩阵 每行都是randperm(n),且第一列也是randperm(n) 这个怎么弄?

如题所述

第一列应该是randperm(m)吧?而且应该是n大于等于m。有问题再说。祝进步。代码如下:
m=3,n=4;%m,n赋值,保证n大于等于m
A=zeros(m,n);%待求矩阵
B=randperm(m);
B=B';
for i=1:m
mark=0;
b=randperm(n);
while(~mark)
if(B(i)==b(1))
A(i,:)=b;
mark=1;
else
b=randperm(n);
end
end
end
A追问

多谢!描述错误,应该是生成n*n行的矩阵,然后再这个矩阵中去M行成为一个新的矩阵,这个意思,后面的我懂了。多谢兄台。

追答

不客气。嗯,你的思路也对。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-16
for i=1:4
a=randperm(5);
A(i,1:5)=a;
end
A
可供参考追问

第一列不是randperm(n).你这只是生成一个m*n的矩阵,每一行都是ranperm(n)。能在想想办法吗

追答

randperm(n)是产生1~n的随机排列,有n个数,你第一列也要是randperm(n),就应该有n行吧,可是你这个是m 行啊

...每行都是randperm(n),且第一列也是randperm(n) 这个怎么弄?_百度...
第一列应该是randperm(m)吧?而且应该是n大于等于m。有问题再说。祝进步。代码如下:m=3,n=4;%m,n赋值,保证n大于等于m A=zeros(m,n);%待求矩阵 B=randperm(m);B=B';for i=1:m mark=0;b=randperm(n);while(~mark)if(B(i)==b(1))A(i,:)=b;mark=1;else b=randperm(n);e...

关于matlab中的randperm函数
在MATLAB中,randperm函数是一个强大的工具,它专门用于随机打乱数字序列。这个函数的简单语法是y = randperm(n),其中n是你想要打乱的数字范围,从1到n。当你运行这个函数时,它会返回一个新的、随机排列的数字序列。例如,在FreeMat中,randperm(5)可能返回2 4 1 5 3,而randperm(3)则可能得到2 ...

MATLAB: randperm函数
在 MATLAB 中,randperm 函数扮演着生成随机排列整数的关键角色。它主要用于创建一个独特的、无重复的整数序列,这些整数范围从1到你指定的数值n。基本使用方式是通过输入一个整数n,randperm会返回一个行向量,这个向量中的每个元素都是一个独立的、随机的、1到n之间的整数,且所有整数都会出现一次。例如...

怎么在MATLAB中生成一个高斯随机矩阵?
randn命令可以实现你的要求,他可以产生均值为0,方差 σ^2 = 1,标准差σ = 1的正态分布的随机数或矩阵的函数。用法:Y = randn(n)返回一个n*n的随机项的矩阵。如果n不是个数量,将返回错误信息。Y = randn(m,n) 或 Y = randn([m n])返回一个m*n的随机项矩阵。Y = randn(m,n,...

matlab中怎样生成一个区间内不重复的随机数?
即产生随机排列:p = randperm(n) returns a random permutation of the integers 1:n.所以要产生[16 31]的随机排列,可以执行:randperm(31-16+1)+15 随机数是专门的随机试验的结果。在统计学的不同技术中需要使用随机数,比如在从统计总体中抽取有代表性的样本的时候,或者在将实验动物分配到不...

matlab 产生矩阵,每行每列最多一个1,其余为零
a=(round(rand(10,1)));%求一个随机0-1矩阵 A=diag(a);%用0-1矩阵形成对角矩阵 b=randperm(10);C=A(:,b)C是把一个随机的对角矩阵打乱

matlabrandperm函数的使用matlabrandn
1、这是产生标准正态分布的随机数或矩阵的函数,randn 是用来产生标准正态分布内伪随机数的函数,也就是你说容的均值为0,标准差σ = 1。2、以下是该函数的用法:Y = randn(n)返回一个n*n的随机项的矩阵。3、如果n不是个数量,将返回错误信息。4、Y = randn(m,n) 或 Y = randn([m ...

matlab如何将已有矩阵的每行元素重新随机排列
使用randperm函数生成随机位置,然后将原矩阵进行修改,程序如下:简单的实验结果如下:

MATLAB生成随机数
randn(m,n):生成m×n阶N(0,1)的随机数矩阵;normrnd(μ,σ, m, n):生成m×n阶 的随机数 矩阵;randperm(N):生成1,2,…,N的随机数列;exprnd(λ, m, n):生成m×n阶均值为λ的指数分布的随机数矩阵;poissrnd(λ, m, n):生成m×n阶均值为λ的泊松分布的随机数矩阵;binornd...

MATLAB如何构造一个每行(每列)都相同的矩阵(方阵)
A = A(:,ones(1,n));这个绝对可以,亲测可行,不过答案来得有点晚。不是方阵也行,把上面的n改成你要的列数即可。不过貌似对A的长度有限制,太长的时候没法用这个办法。

相似回答