lo svolgimento è corretto, ma devi togliere la rigaQuesto è lo svolgimento:
[righe,colonne]=size(B);
lo svolgimento è corretto, ma devi togliere la rigaQuesto è lo svolgimento:
[righe,colonne]=size(B);
Non so come valutino i prof, ma per me ( e sottolineo per me) quello che hai commesso è un grave errore concettuale, che però non inficia il corretto funzionamento dello script.Ma è un errore grave secondo te? Lo dico xke è k unico che ho fatto allo scritto e purtroppo me ne sono resa conto solo a casa (
Data una funzione function v = trova_zero(A) di una matrice 6x6, riesca a darmi un vettore con gli indici delle righe che sono zero nellla quinta e nella sesta colonnaquindi il vettore, se nn sbaglio, dovrebbe uscire con gli indici delle righe con elemento nullo e quindi v dovrebbe essere uguale a : 3,4,5 :S
la matrice A = 1 3 8 7 6 1
2 1 0 5 4 3
10 2 1 5 6 0
1 1 2 3 0 8
1 0 8 7 7 0
0 0 7 5 9 7
Si se la traccia che hai postato è quella, allora è corretto quello che dici e lo svolgimento è il seguente:quindi il vettore, se nn sbaglio, dovrebbe uscire con gli indici delle righe con elemento nullo e quindi v dovrebbe essere uguale a : 3,4,5 :S
fatemi sapere.....
function v = trova_zero(A)
v=[];
[r,c]=size(A);
k=1;
for i=1:r
for j=5:c
if A(i,j)==0
v(k)=i;
k=k+1;
end
end
end
devi usare qualche algoritmo di ricerca per trovare il minimo e il max. Ti invito a vedere la slide 23 che trovi quì;Ciao peppepeppo...ho un'altra domanda da farti....un pò più generica....se io avessi una matrice, di qualsiasi dimensione...e vorrei sapere come si fa a trovare il minimo e anche la media degli elementi di una matrice...senza usare le funzioni built-in, come faccio a farlo ????????
devi usare qualche algoritmo di ricerca per trovare il minimo e il max. Ti invito a vedere la slide 23 che trovi quì;Ciao peppepeppo...ho un'altra domanda da farti....un pò più generica....se io avessi una matrice, di qualsiasi dimensione...e vorrei sapere come si fa a trovare il minimo e anche la media degli elementi di una matrice...senza usare le funzioni built-in, come faccio a farlo ????????
Per la media, dipende: vuoi la media delle righe, delle colonne o di tutti gli elementi della matrice?
Sommi tutti gli elementi della matrice scorrendoli con due for , e li metti in una variabile. Poi dividi questa variabile per il numero degli elementi della matrice ( che è pari al prodotto delle sue dimensioni) e ottieni la media.di tutti gli elementi della matrice...
Data la matrice che contiene i dati relativi alle temperature rilevate da una stazione meteorologica in 6 momenti diversi della giornata (alle 4:00, 8:00, 12:00, 16:00, 20:00, 00:00) per ognuno dei giorni della settimana:
A=
-5.0 -3.0 -6.0 1.7 0.2 -4.1 -1.0
1.7 1.1 0.0 4.3 2.0 -1.4 2.0
6.1 8.6 7.0 10.0 9.0 5.3 8.5
12.7 14.3 13.3 15.0 15.6 10.1 11.0
5.0 7.8 7.1 8.3 7.4 6.0 6.4
0.3 1.5 1.1 2.2 2.0 0.0 1.0
implemetare una funzione che calcoli il minimo ed il valore medio di tutte le temperature rilevate operando sui dati senza utilizzare le funzioni built-in di matlab. Il prototipo della funzione è il seguente:
function [temp_min, temp_med] = calcola_min_med (A)
Data la matrice che contiene i dati relativi alle temperature rilevate da una stazione meteorologica in 6 momenti diversi della giornata (alle 4:00, 8:00, 12:00, 16:00, 20:00, 00:00) per ognuno dei giorni della settimana:
A=
-5.0 -3.0 -6.0 1.7 0.2 -4.1 -1.0
1.7 1.1 0.0 4.3 2.0 -1.4 2.0
6.1 8.6 7.0 10.0 9.0 5.3 8.5
12.7 14.3 13.3 15.0 15.6 10.1 11.0
5.0 7.8 7.1 8.3 7.4 6.0 6.4
0.3 1.5 1.1 2.2 2.0 0.0 1.0
implemetare una funzione che calcoli il minimo ed il valore medio di tutte le temperature rilevate operando sui dati senza utilizzare le funzioni built-in di matlab. Il prototipo della funzione è il seguente:
function [temp_min, temp_med] = calcola_min_med (A)
function [temp_min, temp_med] = calcola_min_med (A)
[r,c]=size(A);
temp_min=A(1,1);
som_temp=0;
for i=1:r
for j=1:c
som_temp=som_temp+A(i,j);
if A(i,j)temp_min=A(i,j);
end
end
end
temp_med=som_temp/(r*c);
end
data la matrice m, scrivere un programma che restituisca la media dei valori della diagonale principale (mdp) e di quella secondaria (mds) esnza usare le funzioni
built-in di MatLab ovvero "diag" e "mean".
IO L'HO FATTO COSI' :
function [mdp,mds]= media_diag (m)
somma=0;
k=0;
h=0;
[r,c]=size(m);
for i= 1:r
for j= 1:c
somma=somma+m(i,i)
k=k+1;
end
end
mdp=somma/k;
for q= 1:1:r
for p= c : -1 : 1
somma=somma+m(p,p)
h=h+1;
end
end
media= somma/h;
end
Svolgimento corretto:data la matrice m, scrivere un programma che restituisca la media dei valori della diagonale principale (mdp) e di quella secondaria (mds) esnza usare le funzioni
built-in di MatLab ovvero "diag" e "mean".
function [mdp,mds]= media_diag (m)Errori:
[r,c]=size(m);
somma_dp=0;
somma_ds=0;
if ~(r==c)
fprintf('matrice non quadrata');
return
end
for i=1:r
somma_dp=somma_dp+m(i,i);
somma_ds=somma_ds+m(i,(c-i+1));
end
mdp=somma_dp/r;
mds=somma_ds/r;
end
function [mdp,mds]= media_diag (m)
somma=0;
k=0; % una matrice ha la diagonale solo se è quadrata, quindi è inutile inizializzare questo contatore, infatti il numero di elementi della diagonale è pari ad una delle due dimesioni della matrice
h=0; % stesso discorso del k
[r,c]=size(m);
for i= 1:r
for j= 1:c % è inutile inizializzare un nuovo for, infatti poi nn lo usi.
somma=somma+m(i,i)
k=k+1;
end
end
mdp=somma/k;
for q= 1:1:r % l'incremento standard è sempre pari ad 1 quindi si omette
for p= c : -1 : 1
somma=somma+m(p,p) % avresti dovuto scrivere m(p,q)
h=h+1;
end
end
media= somma/h; % questa divisione andava salvata in mps
end
ESERCIZIO 1
% Data la matrice A seguente:
A=[ 74 66 16 95 40; 41 48 78 33 29; 62 34 17 51 71; 29 79 48 29 34; 47 53 83 65 58];
% Estrarre una sottomatrice M di dimensioni 4x4 ottenuta a partire
% dall'elemento in seconda riga e seconda colonna.
% (Nota: DEVI usare operatori built-in in Matlab)
% [4 punti]
% DA COMPLETARE RIPORTANDO QUI IL CODICE
M=[66 16 95 40;48 78 33 29;34 17 51 71;79 48 29 34;53 83 65 58];- oppure scrivi
M=A(2:5,2:5);
Salve ragazzi sapete come si svolge questo esercizio: Dato il vettore v dell'esercizio precedente(chiedeva di creare un vettore di 50 numeri interi random compresi tra -10 e 10), creare un nuovo vettore v_new ottenuto prendendo solo 25 valori alternati:uno si e uno no, ovvero tutti i valori di posizione dispari.
mi aiutate? grazieee milee
v_new= v(1:3:numel(v));
ciao a tutti non riesco proprio a capire come fare.
Non so iniziare in quanto dovrei caricare i file txt ma non ho capito come fare.
inoltre dovrei creare delle function ma non riesco a capire come impostare il tutto.
potreste aiutarmi??
grazie
0 utenti, 0 ospiti, 0 utenti anonimi