Creating a non-square diagonal matrix

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

James Tursa
James Tursa 2020년 12월 17일
What is the rule for creating a 94x37x2240 array from a 2240 element vector?
Nikan Fakhari
Nikan Fakhari 2020년 12월 17일
its actaully 94,037 not 94 X 37, so the size im trying to make is a (94,037,2240) matrix
Nikan Fakhari
Nikan Fakhari 2020년 12월 17일
so the real question is that is there a way to make a non-zero diagonal matrix with a desired dimension in matlab?
Nikan Fakhari
Nikan Fakhari 2020년 12월 17일
sorry non-square I meant
James Tursa
James Tursa 2020년 12월 17일
OK, 94037x2240. But what is the rule?

댓글을 달려면 로그인하십시오.

답변 (2개)

Bruno Luong
Bruno Luong 2020년 12월 17일

1 개 추천

B = diag(A(:));
B(94037,1) = 0;
Jan
Jan 2020년 12월 17일
편집: Jan 2020년 12월 17일

0 개 추천

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

카테고리

도움말 센터File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

질문:

2020년 12월 17일

댓글:

2020년 12월 17일

Community Treasure Hunt

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

Start Hunting!

Translated by