Creating a non-square diagonal matrix

25 views (last 30 days)
Nikan Fakhari
Nikan Fakhari on 17 Dec 2020
Commented: Nikan Fakhari on 17 Dec 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 Comments
James Tursa
James Tursa on 17 Dec 2020
OK, 94037x2240. But what is the rule?

Sign in to comment.

Answers (2)


Jan
Jan on 17 Dec 2020
Edited: Jan on 17 Dec 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

Community Treasure Hunt

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

Start Hunting!