## Hi. I am a complete novice at matlab and have been asked to create a 10x10 matrix in as few steps as possible. The first row has to be from 1:10, the second line from 2:11 and so on. How can I create this using repmat?

### Sam Thorpe (view profile)

on 21 Feb 2019
Latest activity Commented on by Sam Thorpe

on 22 Feb 2019

### Fangjun Jiang (view profile)

%this is the matrix I want to achieve
A = zeros(10)
A(1,:)=[1:10]
A(2,:)=[2:11]
A(3,:)=[3:12]
A(4,:)=[4:13]
A(5,:)=[5:14]
A(6,:)=[6:15]
A(7,:)=[7:16]
A(8,:)=[8:17]
A(9,:)=[9:18]
A(10,:)=[10:19]
%How can I achieve this using repmat, reshape or meshgrid and the colon
%operator?

#### 1 Comment

Stephen Cobeldick

### Stephen Cobeldick (view profile)

on 22 Feb 2019
"How can I achieve this using repmat, reshape or meshgrid and the colon operator?"
Are those really the only operators you are allowed to use?

on 21 Feb 2019

(1:10)+(0:9)'

Sam Thorpe

### Sam Thorpe (view profile)

on 21 Feb 2019
Thanks Fanjung, but is there any way of doing this using the functions which I specified?
Fangjun Jiang

### Fangjun Jiang (view profile)

on 22 Feb 2019
It implies
repmat(1:10,10,1)+repmat((0:9)',1,10)

### Stephen Cobeldick (view profile)

on 22 Feb 2019

This uses meshgrid and plus as well (not sure if that is allowed):
>> [X,Y] = meshgrid(0:9,1:10);
>> X+Y
ans =
1 2 3 4 5 6 7 8 9 10
2 3 4 5 6 7 8 9 10 11
3 4 5 6 7 8 9 10 11 12
4 5 6 7 8 9 10 11 12 13
5 6 7 8 9 10 11 12 13 14
6 7 8 9 10 11 12 13 14 15
7 8 9 10 11 12 13 14 15 16
8 9 10 11 12 13 14 15 16 17
9 10 11 12 13 14 15 16 17 18
10 11 12 13 14 15 16 17 18 19

on 22 Feb 2019

Honestly Fangjun Jiang's answer is the way I would do it but according to your question "How can I create this using repmat?" Which I think is a complete waste of time.
repmat(1:10,numel(1:10),1)+repmat((0:9).',1,numel(0:9))

Stephen Cobeldick

### Stephen Cobeldick (view profile)

on 22 Feb 2019
Nice use of repmat to get it onto one line.
Yes, it is a strange and inefficient task. I am still wondering if plus is allowed or not... I guess we will just have to wait for for feedback from Sam Thorpe: what is allowed?

on 22 Feb 2019
True we should wait:
Another possibilty:
(0:9).' can be replaced with reshape(0:9,1,[])
Sam Thorpe

### Sam Thorpe (view profile)

on 22 Feb 2019
Thank you all very much for your help. It is part of a task for a course which is terrible at teaching us the basics of using the software. The use of plus is allowed. It just asks us to use one of the three functions I specified and the colon operator but gave us no method of using them.

### Jos (10584) (view profile)

on 22 Feb 2019
Edited by Jos (10584)

### Jos (10584) (view profile)

on 22 Feb 2019

I think this is the only acceptable answer is, given all restraints:
A = reshape([1:10 2:11 3:12 4:13 5:14 6:15 7:16 8:17 9:18 10:19],10,10)
which does not use numel, tranpose (.'), semi-colons, and plus :-D
But wait a minute, ... is concatenation using square brackets acceptable or not ...