a simple vector to a matrix

1 view (last 30 days)
MA
MA on 6 Oct 2021
Answered: Steven Lord on 6 Oct 2021
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.

Answers (2)

Steven Lord
Steven Lord on 6 Oct 2021
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 on 6 Oct 2021
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

Categories

Find more on Data Type Conversion in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!