请问matlab中如何创造一个重复的矩阵?

我现在想要造一个这样欣矩阵:
2 3
2 3
2 3
...
一共有100行,且每一行是2 3 两个元素。请问matlab 中有什么比较方便的命令可以迅速创建这这样的矩阵?

第1个回答  推荐于2016-03-21
x=[ones(100,1)*2 ones(100,1)*3];


a=ones(100,2);%矩阵的维数
b=diag([2,3]);%diag是利用元素构造对角阵
x=a*b; %利用矩阵乘法特性亦可可达到目的

第二种思路对于每行元素多的比较方便,如
r=100;%100行
n=[2,3,4,5,6,7];%每行的元素
x=ones(r,length(n))*diag(n);

第三种思路利用循环,效率低
for i=1:100
x(i,:)=[2,3];
end追问

请问diag的作用是什么?

追答

diag([2,3,4])=[2,0,0;0,3,0;0,0,4]
即以2,3,4为主对角线元素,其他元素皆为0

本回答被提问者采纳
第2个回答  推荐于2016-03-21
x=[ones(100,1)*2 ones(100,1)*3];


a=ones(100,2);%矩阵的维数
b=diag([2,3]);%diag是利用元素构造对角阵
x=a*b; %利用矩阵乘法特性亦可可达到目的

第二种思路对于每行元素多的比较方便,如
r=100;%100行
n=[2,3,4,5,6,7];%每行的元素
x=ones(r,length(n))*diag(n);

第三种思路利用循环,效率低
for i=1:100
x(i,:)=[2,3];
end追问

请问diag的作用是什么?

追答

diag([2,3,4])=[2,0,0;0,3,0;0,0,4]
即以2,3,4为主对角线元素,其他元素皆为0

本回答被提问者采纳
相似回答