a simple vector to a matrix

Hello everyone,
I am trying to write a code that convert a vector like the following for example:
X=[1 2 3];
to a matrix like the following:
Z=[1 0 0 2 0 0 3 0 0;...
0 1 0 0 2 0 0 3 0;...
0 0 1 0 0 2 0 0 3];
Any ideas?
Thanks very much.

Antworten (2)

Steven Lord
Steven Lord am 6 Okt. 2021

2 Stimmen

X=[1 2 3];
I = eye(3);
kron(X, I)
ans = 3×9
1 0 0 2 0 0 3 0 0 0 1 0 0 2 0 0 3 0 0 0 1 0 0 2 0 0 3
kron(I, X)
ans = 3×9
1 2 3 0 0 0 0 0 0 0 0 0 1 2 3 0 0 0 0 0 0 0 0 0 1 2 3
David Hill
David Hill am 6 Okt. 2021

0 Stimmen

X-[1 2 3];
Z=zeros(3,3*numel(X));
for k=1:numel(X)
Z(9*k:-4:9*k-8)=X(k);
end

Kategorien

Gefragt:

MA
am 6 Okt. 2021

Beantwortet:

am 6 Okt. 2021

Community Treasure Hunt

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

Start Hunting!

Translated by