how to create this matrix [1 2 3 4 5;2 2 3 4 5;3 3 3 4 5;4 4 4 4 5;5 5 5 5 5]

18 views (last 30 days)
Waiting for your response
  1 Comment
John D'Errico
John D'Errico on 9 Feb 2018
Why is it starting to look as if you are asking homework questions? This is now your second question on how to create a basic matrix?

Sign in to comment.

Accepted Answer

Jos (10584)
Jos (10584) on 9 Feb 2018
Edited: Jos (10584) on 9 Feb 2018
% data
n = 7 % "order"
% engine
x = repmat(1:n,n,1)
x = max(x, x.')
Added after comment: for non-square matrices:
n = 4 ; m = 6 ; % n-by-m matrix
x = max(repmat(1:m,n,1), repmat(1:n,m,1).')

More Answers (3)

Andrei Bobrov
Andrei Bobrov on 9 Feb 2018
[x,y] = ndgrid(1:5)
out = max(x , y)
  3 Comments
Andrei Bobrov
Andrei Bobrov on 9 Feb 2018
@Stephen: Thank you, Stephen!
@Farooq Aamir:
m = 5; n = 8;
[x,y] = ndgrid(1:m,1:n);
out = max(x , y);

Sign in to comment.


Torsten
Torsten on 9 Feb 2018
Edited: Torsten on 9 Feb 2018
A = [1 2 3 4 5;2 2 3 4 5;3 3 3 4 5;4 4 4 4 5;5 5 5 5 5];
Best wishes
Torsten.

Benjamin Drewry
Benjamin Drewry on 9 Feb 2018
Well super brute force method, but it helps if you are just beginning to code
clear all; close all; clc
M=5; N=5; % can vary M and N to matrix of size of interest
% preallocate matrix space
concat_matrix=ones(M,N);
j=1;
for i=1:M
if i>N
concat_matrix(i, :)=concat_matrix(i-1,:)+1;
else
repval=ones(1,j).*j;
remains=[numel(repval)+1:N];
concat_matrix(i,1:N)=[repval remains];
j=j+1;
end
end

Community Treasure Hunt

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

Start Hunting!