How do you convert an array into a square matrix?

11 次查看(过去 30 天)
Say I have an array
x=[1 2 3 4 5 6 7 8 9 10]
and I want to convert this into a square matrix as follows:
M=
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10...
And so on so that there are a total of 10 rows and 10 columns
So I start with a [1x10]array and turn this into a [10x10] matrix
How do you do this??
Thank you!
MC
  1 个评论
Matt J
Matt J 2012-9-29
It's often possible to avoid replicating data (and also desirable for memory-efficiency reasons) using the BSXFUN command. You should elaborate on why you think you need the rows replicated.

请先登录,再进行评论。

采纳的回答

Wayne King
Wayne King 2012-9-29
编辑:Wayne King 2012-9-29
x = [1 2 3 4 5 6 7 8 9 10];
x = repmat(x,10,1);

更多回答(2 个)

Matt Fig
Matt Fig 2012-9-29
编辑:Matt Fig 2012-9-29
Another:
x = 1:10; % Original
x = x(ones(1,length(x)),:) % indexing instead of repmatting.

Andrei Bobrov
Andrei Bobrov 2012-9-30
M = ones(numel(x),1)*x;
M = bsxfun(@plus,x,zeros(numel(x),1));

类别

Help CenterFile Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by