**Info**

This question is closed. Reopen it to edit or answer.

# How to build a matrix like this

1 view (last 30 days)

Show older comments

if we have a number n, we want a matrix like this:

So one simple example is:

What is the best way to build this?

##### 0 Comments

### Answers (4)

José-Luis
on 18 Aug 2017

n = 4;

result = repmat((n:-1:1),n,1) - tril(cumsum(tril(ones(n)))-1)

##### 0 Comments

Kuifeng
on 18 Aug 2017

The following works, not the 'best' way...

n = 5;

A = [n:-1:1]';

for i = 2:n

A(:,i) = A(:,i-1);

A([1:i],i) = n-(i-1);

end

##### 3 Comments

Kuifeng
on 18 Aug 2017

Robert U
on 18 Aug 2017

Edited: Robert U
on 18 Aug 2017

Hi Rui Zhu,

another possibility:

function [ A ] = SpecMatrice( n )

tic

A = zeros(n);

for ik = 1:n

A(1:ik,1:ik) = A(1:ik,1:ik) + 1;

end

t = toc;

sprintf('MySolution took %.2f µs',t*1e6)

end

On my PC that solution is for low values of n faster than the presented above. Here values for n=4:

Solution 1 took 806.82 µs

Solution 2 took 888.93 µs

Solution 3 took 441.34 µs

MySolution took 109.33 µs

For high values of n solution 2 & 3 gain speed a lot while solution 1 and MySolution get slowlier due to looping.

Kind regards,

Robert

##### 0 Comments

### See Also

### Community Treasure Hunt

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

Start Hunting!