Create a Matrix with a specific main diagonal

1 view (last 30 days)
I want to create a matrix of all one's with the main diagonal of value n.

Accepted Answer

Thorsten
Thorsten on 30 Nov 2015
val = 50; N = 10;
X = diag(repmat(val-1, 1, 10)) + ones(N)

More Answers (3)

dpb
dpb on 30 Nov 2015
Multiple ways possible; one--
>> N=5; % diagonal value
>> sz=3; % size
>> m=ones(sz)+diag(repmat(N-1,1,sz))
m =
5 1 1
1 5 1
1 1 5
>>
doc diag % for details on optional arguments for different resulting types

Stephen23
Stephen23 on 30 Nov 2015
Edited: Stephen23 on 30 Nov 2015
One very simple solution:
>> X = +~eye(4);
>> X(X==0) = 5
X =
5 1 1 1
1 5 1 1
1 1 5 1
1 1 1 5

Andrei Bobrov
Andrei Bobrov on 30 Nov 2015
d = randi(35,5,1);
out = ~eye(5) + diag(d);

Categories

Find more on Operating on Diagonal Matrices 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!