UniprJRC / DSconMATLAB

Il sito che contiene materiale aggiuntivo e tutti i files di codice MATLAB degli esercizi e delle figure del libro.
19 stars 6 forks source link

COMPETIZIONE #536

Open MarcoRianiUNIPR opened 3 weeks ago

MarcoRianiUNIPR commented 3 weeks ago

2 punti in più al primo che riesce a creare la matrice che segue 1 2 3 4 5 6 7 8 9 2 1 2 3 4 5 6 7 8 3 2 1 2 3 4 5 6 7 4 3 2 1 2 3 4 5 6 5 4 3 2 1 2 3 4 5 6 5 4 3 2 1 2 3 4 7 6 5 4 3 2 1 2 3 8 7 6 5 4 3 2 1 2 9 8 7 6 5 4 3 2 1

Per chi vuole visualizzare in una finestra grafica questa matrice può utilizzare imagesc image

Matrice visualizzata tramite heatmap image

giadalucchinelli commented 3 weeks ago

A=zeros(9)
% Ciclo for
for i = 1:9
    for j = 1:9

        if i > j
            A(i,j) = i - j + 1;  % Se i > j
        else
            A(i,j) = j - i + 1;  % Se j >= i
        end
    end
end

disp(A);
imagesc(A)

image

emmaconta commented 3 weeks ago

A=zeros(9) % faccio ciclo for for i=1:9 for j=1:9 if i>j % se i è maggiore di j A(i,j)=i-j+1 else % se i è minore di j A(i,j)=j-i+1 end end end

disp(A)

imagesc(A)

image

MarcoRianiUNIPR commented 3 weeks ago

Bravissime @giadalucchinelli e @emmaconta !!!!!!!!!!!!!!!

MarcoRianiUNIPR commented 3 weeks ago

Un modo alternativo era il seguente

n=9;
A=zeros(n);
for i=1:n-1
     % Inserisci il valore i+1 sulla iesima diagonale
     A=A+diag((i+1)*ones(9-i,1),i);
end
disp('Output del loop precedente')
disp(A);
disp('La matrice finale è la matrice che viene fuori dal loop più la sua trasposta + la matrice identità')
disp(A+A'+eye(n))

image

MarcoRianiUNIPR commented 3 weeks ago

Una variazione sul tema. Creare la matrice che segue image

Benedetto0301 commented 3 weeks ago

%% Inizializzo la matrice n=7; A=zeros(n);

for i=1:n for j=1:n A(i,j) = 19-abs(i - j)*3; end end

disp(A) %inizialmente tramite la funzione "zeros" inizializziamo la matrice 7x7 che %è della stessa dimensione della matrice che dobiamo andare a creare. % utilizziamo il ciclo for in modo tale da riempire i valori (i,j) di riga % e colonna in base all'istruzione fornita che è A(i,j) = 19 - (i,j)*3, % poichè la diagonale principale ha valore 19 invece le diagonali parallele % hanno valori che si riducono in modo progressivo di 3 % la funzione abs ritorna il valore in valore assoluto

% per i=j = 1 -> 19 % per i=j =2 -> 16 % per i=j =3 -> 13

MarcoRianiUNIPR commented 3 weeks ago

Bravo a @Benedetto0301 che aggiunge due punti. Ormai lei ha accumulato così tanti punti in più e tra poco non è neanche più necessario che venga a fare l'esame.

Le matrici che abbiamo creato sono note nella letteratura come matrici di Toeplitz

Matrici di Toeplitz

https://en.wikipedia.org/wiki/Toeplitz_matrix

Ad esempio per creare la prima matrice la sintassi è

A=toeplitz(1:9)

Al contrario, per creare la seconda matrice la sintassi è

A=toeplitz(19:-3:1)

LA PROSSIMA COMPETIZIONE SARA' VEN 15 NOVEMBRE ALLE ORE 13.45