Filter löschen
Filter löschen

I want to make an identity matrix

3 Ansichten (letzte 30 Tage)
Qonitat
Qonitat am 5 Mär. 2023
Bearbeitet: John D'Errico am 5 Mär. 2023
i want to make a matrix that look like this
How could i achieve this efficiently .Thanks in advace

Antworten (2)

the cyclist
the cyclist am 5 Mär. 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 am 5 Mär. 2023
Bearbeitet: John D'Errico am 5 Mär. 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)

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by