Filter löschen
Filter löschen

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?

1 Ansicht (letzte 30 Tage)
%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 Kommentar
Stephen23
Stephen23 am 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?

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Fangjun Jiang
Fangjun Jiang am 21 Feb. 2019
(1:10)+(0:9)'

Weitere Antworten (3)

Stephen23
Stephen23 am 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

madhan ravi
madhan ravi am 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))
  3 Kommentare
madhan ravi
madhan ravi am 22 Feb. 2019
True we should wait:
Another possibilty:
(0:9).' can be replaced with reshape(0:9,1,[])
Sam Thorpe
Sam Thorpe am 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.

Melden Sie sich an, um zu kommentieren.


Jos (10584)
Jos (10584) am 22 Feb. 2019
Bearbeitet: Jos (10584) am 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 ...

Kategorien

Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by