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));
fork=1:numel(X)
Z (9 * k: 9 * k - 8) = X (k);
end

Community Treasure Hunt

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

Start Hunting!