MATLAB如何构造一个每行(每列)都相同的矩阵(方阵)

2024-12-16 04:08:14
推荐回答(5个)
回答1:

A = A(:,ones(1,n));
这个绝对可以,亲测可行,不过答案来得有点晚。不是方阵也行,把上面的n改成你要的列数即可。

不过貌似对A的长度有限制,太长的时候没法用这个办法。

回答2:

创建一个随机矩阵:它的每行每列都只有一个位置为1,其余为0
a=eye(5)
b=randperm(5)
c=a(:,b)
这样c就满足要求。
创建一个矩阵只要求每列上只有一个位置为1
a=zeros(5);
for
i=1:length(a)
b=randperm(5);
a(b(1),i)=1;
end

回答3:

%A是列向量
N = length(A);
ANN = zeros([N,N]);
for i=1:N
ANN(:,i) = A;
end;
ANN就是那样的阵...

回答4:

还有一种更为简便的方法,x=1:4;y=x;[X,Y]=meshgrid(x,y)
运行出来X是列相等,Y是行相等的矩阵。

回答5:

可以用repmat来构造。
repmat(A,r,c)会把A看成整体,将其填充为r乘c块的矩阵。
比如你问的问题可以写成
A=[1 2 3 4]';
B=repmat(A,1,4);