Creating a non-square diagonal matrix

35 Ansichten (letzte 30 Tage)
Nikan Fakhari
Nikan Fakhari am 17 Dez. 2020
Kommentiert: Nikan Fakhari am 17 Dez. 2020
Hi there,
I have a vector A that contains 2240 elements and I wanted to create a non-square diagonal matrix out if (B) that has the following dim: (94,037,2240),
I cant really use the diag function in matlab beause that gives me a square diagonal matrix,
Could you please help me with this issue?
  5 Kommentare
Nikan Fakhari
Nikan Fakhari am 17 Dez. 2020
sorry non-square I meant
James Tursa
James Tursa am 17 Dez. 2020
OK, 94037x2240. But what is the rule?

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Bruno Luong
Bruno Luong am 17 Dez. 2020
B = diag(A(:));
B(94037,1) = 0;

Jan
Jan am 17 Dez. 2020
Bearbeitet: Jan am 17 Dez. 2020
s1 = 94037;
s2 = 2240;
v = rand(1, s2); % Test data
M = zeros(s1, s2);
M(1:s1+1:s1*s2) = v; % Linear indexing
Or if s2 > s1:
s1 = 2;
s2 = 4;
v = rand(1, s1); % Test data
M = zeros(s1, s2);
M(1:s1+1:s1*s1) = v; % Linear indexing

Kategorien

Mehr zu Operating on Diagonal 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