How to add zeros diagonally in a matrix?
    12 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
I am having a 4*5 matrix. Now, I need to add '0' diagonally and convert the matrix into 5*5. Thank you in advance.
Example:
A=[2	2	1	3	2
    1	    3	    3	    1	    2
    3	    1	    4	    4	    1
    2	    2	    1	    3	    3]
Expected output:
B=[ 0      2      1      3      2 
    2      0      3      1      2 
    1      3      0      4      1
    3      1      4      0      3
    2      2      1      3      0]
0 Commenti
Risposta accettata
  Stephen23
      
      
 il 14 Dic 2022
        A = [2,2,1,3,2;1,3,3,1,2;3,1,4,4,1;2,2,1,3,3]
S = size(A)+[1,0];
B = zeros(S);
B(~eye(S)) = A
Più risposte (1)
  Jiri Hajek
      
 il 14 Dic 2022
        Hi, MATLAB has functions that can extract upper and lower triangular parts of a matric, rest is just adding them into a zero pre-allocated matrix B:
A = randn(4)
Au = triu(A);
Al = tril(A);
B = zeros(5);
B(1:4,2:end) = Au;
B(2:end,1:4) = B(2:end,1:4)+Al
Vedere anche
Categorie
				Scopri di più su Operating on Diagonal Matrices in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!