How to add zeros diagonally in a matrix?

2 vues (au cours des 30 derniers jours)
Haya Ali
Haya Ali le 7 Mai 2023
Déplacé(e) : VBBV le 9 Mai 2023
I am trying to add zeros diagonally in this matrix so it should become 23*23 matrix. But with my program it becomes 24*22 matrix. Please help to resolve the code.
close all; clear all; clc;
A= [0 0 0 1 0 -1 0 -1 -1 0 1 -1 0 0 1 -1 0 1 0 1 -1 0
0 1 1 1 0 0 -1 0 0 0 1 -1 1 -1 -1 1 0 -1 0 -1 1 0
-1 -1 0 0 0 0 1 0 1 0 0 -1 1 1 -1 1 0 -1 1 -1 1 0
1 -1 0 -1 0 -1 -1 0 0 -1 1 0 0 0 -1 1 -1 0 -1 -1 0 1
0 1 -1 0 0 -1 1 -1 -1 -1 1 0 0 0 0 -1 0 0 -1 1 0 0
1 0 0 1 0 -1 -1 0 0 0 1 -1 0 0 -1 1 -1 0 -1 -1 1 1
-1 0 -1 0 1 0 1 0 1 0 -1 -1 1 1 0 0 0 0 1 1 0 0
0 0 -1 0 0 0 1 0 1 0 0 1 -1 0 1 0 -1 1 1 -1 1 -1
1 0 0 0 -1 0 0 1 1 -1 -1 -1 0 0 -1 -1 -1 0 0 -1 1 0
1 0 1 0 1 0 0 1 0 1 1 -1 1 0 -1 0 0 0 0 -1 -1 0
0 0 -1 -1 0 0 0 -1 0 -1 1 1 0 1 -1 1 -1 -1 -1 -1 0 0
0 -1 -1 -1 1 0 0 -1 0 0 0 1 1 0 -1 1 0 0 -1 -1 0 1
0 0 1 0 -1 0 -1 0 0 1 -1 -1 0 -1 0 -1 0 -1 1 1 1 1
-1 0 0 1 1 0 -1 -1 0 -1 -1 1 -1 -1 0 0 1 0 1 1 0 1
0 -1 -1 0 1 0 -1 -1 0 -1 0 0 -1 0 -1 1 0 0 1 0 0 -1
0 -1 0 -1 -1 0 0 -1 0 0 0 -1 1 1 0 1 0 0 -1 -1 0 0
-1 0 -1 -1 1 0 0 1 0 1 0 -1 1 1 1 -1 0 -1 0 0 -1 -1
-1 0 0 1 0 -1 -1 -1 0 -1 -1 1 -1 0 0 0 0 -1 1 1 1 1
0 -1 -1 0 1 0 -1 -1 0 -1 0 0 1 0 0 1 0 0 1 1 1 -1
1 1 -1 0 -1 0 -1 1 0 1 -1 -1 -1 0 1 0 -1 -1 0 1 0 -1
0 -1 1 1 0 0 -1 -1 1 1 0 -1 -1 1 0 -1 1 0 -1 0 1 0
0 -1 -1 0 1 0 0 1 0 1 0 0 -1 1 0 1 1 0 -1 0 -1 -1
1 1 -1 1 -1 0 0 0 -1 1 0 0 -1 0 -1 -1 -1 0 1 1 1 1];
S = size(A)+[1,0];
B = zeros(S);
B(~eye(S)) = A;
  1 commentaire
VBBV
VBBV le 7 Mai 2023
Déplacé(e) : VBBV le 9 Mai 2023
close all; clear all; clc;
A= [0 0 0 1 0 -1 0 -1 -1 0 1 -1 0 0 1 -1 0 1 0 1 -1 0
0 1 1 1 0 0 -1 0 0 0 1 -1 1 -1 -1 1 0 -1 0 -1 1 0
-1 -1 0 0 0 0 1 0 1 0 0 -1 1 1 -1 1 0 -1 1 -1 1 0
1 -1 0 -1 0 -1 -1 0 0 -1 1 0 0 0 -1 1 -1 0 -1 -1 0 1
0 1 -1 0 0 -1 1 -1 -1 -1 1 0 0 0 0 -1 0 0 -1 1 0 0
1 0 0 1 0 -1 -1 0 0 0 1 -1 0 0 -1 1 -1 0 -1 -1 1 1
-1 0 -1 0 1 0 1 0 1 0 -1 -1 1 1 0 0 0 0 1 1 0 0
0 0 -1 0 0 0 1 0 1 0 0 1 -1 0 1 0 -1 1 1 -1 1 -1
1 0 0 0 -1 0 0 1 1 -1 -1 -1 0 0 -1 -1 -1 0 0 -1 1 0
1 0 1 0 1 0 0 1 0 1 1 -1 1 0 -1 0 0 0 0 -1 -1 0
0 0 -1 -1 0 0 0 -1 0 -1 1 1 0 1 -1 1 -1 -1 -1 -1 0 0
0 -1 -1 -1 1 0 0 -1 0 0 0 1 1 0 -1 1 0 0 -1 -1 0 1
0 0 1 0 -1 0 -1 0 0 1 -1 -1 0 -1 0 -1 0 -1 1 1 1 1
-1 0 0 1 1 0 -1 -1 0 -1 -1 1 -1 -1 0 0 1 0 1 1 0 1
0 -1 -1 0 1 0 -1 -1 0 -1 0 0 -1 0 -1 1 0 0 1 0 0 -1
0 -1 0 -1 -1 0 0 -1 0 0 0 -1 1 1 0 1 0 0 -1 -1 0 0
-1 0 -1 -1 1 0 0 1 0 1 0 -1 1 1 1 -1 0 -1 0 0 -1 -1
-1 0 0 1 0 -1 -1 -1 0 -1 -1 1 -1 0 0 0 0 -1 1 1 1 1
0 -1 -1 0 1 0 -1 -1 0 -1 0 0 1 0 0 1 0 0 1 1 1 -1
1 1 -1 0 -1 0 -1 1 0 1 -1 -1 -1 0 1 0 -1 -1 0 1 0 -1
0 -1 1 1 0 0 -1 -1 1 1 0 -1 -1 1 0 -1 1 0 -1 0 1 0
0 -1 -1 0 1 0 0 1 0 1 0 0 -1 1 0 1 1 0 -1 0 -1 -1
1 1 -1 1 -1 0 0 0 -1 1 0 0 -1 0 -1 -1 -1 0 1 1 1 1];
size(A)
ans = 1×2
23 22
S = size(A)+ [0 1]
S = 1×2
23 23
B = zeros(S);
B(~eye(S)) = A
B = 23×23
0 1 -1 1 0 1 -1 0 -1 0 -1 -1 1 0 0 -1 0 0 0 -1 -1 1 0 0 0 1 -1 1 -1 0 -1 1 0 -1 -1 -1 1 1 -1 -1 -1 0 -1 1 0 0 0 0 0 -1 0 0 0 -1 -1 0 0 0 1 0 0 -1 0 -1 1 1 -1 0 1 -1 1 0 0 1 1 0 -1 -1 0 1 0 0 -1 -1 -1 1 0 0 1 1 1 0 1 -1 1 1 0 -1 0 -1 1 0 -1 0 -1 -1 -1 0 1 -1 0 0 -1 0 1 0 -1 0 1 0 0 0 0 -1 0 -1 -1 -1 1 0 0 -1 0 -1 0 -1 1 0 1 1 0 0 0 -1 0 0 1 1 1 0 1 1 1 -1 0 0 0 -1 -1 1 -1 -1 0 -1 -1 0 0 0 0 0 0 1 -1 0 -1 1 0 1 1 -1 -1 -1 -1 0 0 0 0 0 0 0 -1 -1 0 -1 1 0 -1 1 0 1 1 0 0 1 -1 0 0 1 0 -1 1 0 -1 1 0 -1 0 1 0 -1 -1 0 0 -1 0 0 1 1 0 0

Connectez-vous pour commenter.

Réponse acceptée

Walter Roberson
Walter Roberson le 7 Mai 2023
Your A is 23 x 22. You add 1 row and 0 columns to that to get B of size 24 x 22.
A= [0 0 0 1 0 -1 0 -1 -1 0 1 -1 0 0 1 -1 0 1 0 1 -1 0
0 1 1 1 0 0 -1 0 0 0 1 -1 1 -1 -1 1 0 -1 0 -1 1 0
-1 -1 0 0 0 0 1 0 1 0 0 -1 1 1 -1 1 0 -1 1 -1 1 0
1 -1 0 -1 0 -1 -1 0 0 -1 1 0 0 0 -1 1 -1 0 -1 -1 0 1
0 1 -1 0 0 -1 1 -1 -1 -1 1 0 0 0 0 -1 0 0 -1 1 0 0
1 0 0 1 0 -1 -1 0 0 0 1 -1 0 0 -1 1 -1 0 -1 -1 1 1
-1 0 -1 0 1 0 1 0 1 0 -1 -1 1 1 0 0 0 0 1 1 0 0
0 0 -1 0 0 0 1 0 1 0 0 1 -1 0 1 0 -1 1 1 -1 1 -1
1 0 0 0 -1 0 0 1 1 -1 -1 -1 0 0 -1 -1 -1 0 0 -1 1 0
1 0 1 0 1 0 0 1 0 1 1 -1 1 0 -1 0 0 0 0 -1 -1 0
0 0 -1 -1 0 0 0 -1 0 -1 1 1 0 1 -1 1 -1 -1 -1 -1 0 0
0 -1 -1 -1 1 0 0 -1 0 0 0 1 1 0 -1 1 0 0 -1 -1 0 1
0 0 1 0 -1 0 -1 0 0 1 -1 -1 0 -1 0 -1 0 -1 1 1 1 1
-1 0 0 1 1 0 -1 -1 0 -1 -1 1 -1 -1 0 0 1 0 1 1 0 1
0 -1 -1 0 1 0 -1 -1 0 -1 0 0 -1 0 -1 1 0 0 1 0 0 -1
0 -1 0 -1 -1 0 0 -1 0 0 0 -1 1 1 0 1 0 0 -1 -1 0 0
-1 0 -1 -1 1 0 0 1 0 1 0 -1 1 1 1 -1 0 -1 0 0 -1 -1
-1 0 0 1 0 -1 -1 -1 0 -1 -1 1 -1 0 0 0 0 -1 1 1 1 1
0 -1 -1 0 1 0 -1 -1 0 -1 0 0 1 0 0 1 0 0 1 1 1 -1
1 1 -1 0 -1 0 -1 1 0 1 -1 -1 -1 0 1 0 -1 -1 0 1 0 -1
0 -1 1 1 0 0 -1 -1 1 1 0 -1 -1 1 0 -1 1 0 -1 0 1 0
0 -1 -1 0 1 0 0 1 0 1 0 0 -1 1 0 1 1 0 -1 0 -1 -1
1 1 -1 1 -1 0 0 0 -1 1 0 0 -1 0 -1 -1 -1 0 1 1 1 1];
S = size(A)+[0,1];
B = zeros(S);
B(~eye(S)) = A;
B
B = 23×23
0 1 -1 1 0 1 -1 0 -1 0 -1 -1 1 0 0 -1 0 0 0 -1 -1 1 0 0 0 1 -1 1 -1 0 -1 1 0 -1 -1 -1 1 1 -1 -1 -1 0 -1 1 0 0 0 0 0 -1 0 0 0 -1 -1 0 0 0 1 0 0 -1 0 -1 1 1 -1 0 1 -1 1 0 0 1 1 0 -1 -1 0 1 0 0 -1 -1 -1 1 0 0 1 1 1 0 1 -1 1 1 0 -1 0 -1 1 0 -1 0 -1 -1 -1 0 1 -1 0 0 -1 0 1 0 -1 0 1 0 0 0 0 -1 0 -1 -1 -1 1 0 0 -1 0 -1 0 -1 1 0 1 1 0 0 0 -1 0 0 1 1 1 0 1 1 1 -1 0 0 0 -1 -1 1 -1 -1 0 -1 -1 0 0 0 0 0 0 1 -1 0 -1 1 0 1 1 -1 -1 -1 -1 0 0 0 0 0 0 0 -1 -1 0 -1 1 0 -1 1 0 1 1 0 0 1 -1 0 0 1 0 -1 1 0 -1 1 0 -1 0 1 0 -1 -1 0 0 -1 0 0 1 1 0 0

Plus de réponses (0)

Catégories

En savoir plus sur Operating on Diagonal Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by