I want to make an identity matrix

4 visualizaciones (últimos 30 días)
Qonitat
Qonitat el 5 de Mzo. de 2023
Editada: John D'Errico el 5 de Mzo. de 2023
i want to make a matrix that look like this
How could i achieve this efficiently .Thanks in advace

Respuestas (2)

the cyclist
the cyclist el 5 de Mzo. de 2023
I've made some assumptions about the pattern, but I expect it is what you want.
This should be highly efficient. The algorithm is a bit obfuscated.
% Input
N = 4;
% Start with all 0s
M = zeros(N,N*(N+1));
% Fill in the 1s
M(1:N*N+1:end-N*N) = 1;
% Fill in the -1s
M(:,N*N+1) = -1;
% Display the result
disp(M)
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0

John D'Errico
John D'Errico el 5 de Mzo. de 2023
Editada: John D'Errico el 5 de Mzo. de 2023
These are starting to look like homework questions.
Did you not read the answer to the last question you asked? You could not use that idea to build this matrix?
A = kron([eye(4),zeros(4,1)],[1 0 0 0])
A = 4×20
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
That gets you almost there, with the first 16 columns correct, and a total of 20 columns. Then it would be simple enough to stuff in the -1 elements in column 17.
A(:,17) = -1
A = 4×20
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0
spy(A)

Categorías

Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by