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)
Show older comments
Farooq Aamir
on 9 Feb 2018
Answered: Benjamin Drewry
on 9 Feb 2018
Waiting for your response
1 Comment
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?
Accepted Answer
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).')
2 Comments
More Answers (3)
Andrei Bobrov
on 9 Feb 2018
[x,y] = ndgrid(1:5)
out = max(x , y)
3 Comments
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);
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
0 Comments
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!