Matrici di matrici

di il
2 risposte

Matrici di matrici

Salve sono nuovo del forum e anche di Matlab, ringrazio subito chiunque possa darmi una mano.
Il mio problema è il seguente: ho una matrice diagonale 3x3, devo creare un'altra matrice, sempre diagonale ma di dimensione nxn, tale matrice deve avere sulla diagonale i valori della matrice 3x3 che si ripetono, praticamente così:

1 0 0
0 2 0
0 0 3

la seconda matrice dovrà essere:

1 0 0 0 0 0 0 0 0
0 2 0 0 0 0 0 0 0
0 0 3 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0
0 0 0 0 2 0 0 0 0
0 0 0 0 0 3 0 0 0
0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 2 0...ecc

grazie per qualsiasi aiuto

2 Risposte

  • Re: Matrici di matrici

    Adesso non posso testarla che non ho il matlab ma l'ide a è questa :
    1) La tua matrice la chiami A (La prima):
    A=
    1 0 0
    0 2 0
    0 0 3

    2) La tua matrice risultante sarà :
    B = [A, zeros(3,3), zeros(3,3);zeros(3,3),A,zeros(3,3);zeros(3,3),zeros(3,3),A]
    Devi ricntrollare la sintassi che ..
  • Re: Matrici di matrici

    Da utente semi esperto di MatLab ti propongo la seguente soluzione.
    % dichiari la tua prima matrice A
    
    A=[1 0 0; 0 2 0; 0 0 3];
    
    % ora crei una matrice nxn.
    
    B=zeros(n)
    
    % ora assegni i valori della matrice A. Tieni conto che i valori della diagonale principale hanno lo stesso indice riga e colonna.
    
    for i=1:3:n
    B(i,i)        = A(1,1);
    B(i+1,i+1) = A(2,2);
    B(i+2,i+2) = A(3,3);
    end
    dovrebbe funzionare in modo corretto, e come codice mi sembra anche abbastanza pulito e generico.

    ciao, spero di esserti stato utile.
Devi accedere o registrarti per scrivere nel forum
2 risposte