Create a Matrix with a specific main diagonal

6 Ansichten (letzte 30 Tage)
Adzlxix
Adzlxix am 30 Nov. 2015
Bearbeitet: Adzlxix am 12 Dez. 2015
I want to create a matrix of all one's with the main diagonal of value n.

Akzeptierte Antwort

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

Weitere Antworten (3)

dpb
dpb am 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 am 30 Nov. 2015
Bearbeitet: Stephen23 am 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 am 30 Nov. 2015
d = randi(35,5,1);
out = ~eye(5) + diag(d);

Kategorien

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

Community Treasure Hunt

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

Start Hunting!

Translated by