View Full Version : Matlab calcolo media
Heisemberg
04-06-2014, 21:56
Ho una matrice M (128x128) che rappresenta un campo con valori di intensità da -30 x a +30 x e da -30 y a +30 y.
Vorrei calcolare l'intensità media dei dati all'interno di un ellisse con semiassi a=6 e b=4.
Come posso fare?
Daniels118
05-06-2014, 12:02
Definisci una funzione che ti consente di determinare il perimetro dell'ellissi nella forma
y0=-F(x)
y1=+F(x)
quindi codifichi il seguente algoritmo:
EDIT:
per ogni x compresa nell'asse orizzontale {
per y che va da -F(x) a +F(x) {
somma = somma + matrice(x,y)
punti = punti + 1
}
}
media = somma / punti
Heisemberg
05-06-2014, 13:14
Ecco come ho fatto:
C=(x.^2)/(A1^2)+(y.^2)/(B1^2); %Se C<=1 sono all'interno dell'ellissi 1, è una matrice 128x128.
n=0;
c=zeros(128,128);
for i=1:128
for j=1:128
if C(i,j)<= 1
n=n+1;
c(i,j)=Matricedati(i,j);
end
end
end
s=sum(c);
S=sum(s);
Media=S/n;
Grazie.
Ora, che comando posso usare per far comparire il valore della media nel plot?
Daniels118
05-06-2014, 14:21
Vorresti spiegare a parole quello che hai scritto?
Heisemberg
05-06-2014, 14:52
Ho una variabile che ho chiamato "Media" e voglio che in un grafico compaia la scritta: "Valore Medio =" e di seguito il valore della variabile.
Sto provando con il comando text ma non riesco.
Daniels118
05-06-2014, 15:00
Questo è ciò che vorresti ottenere, ma non hai risposto alla mia domanda.
Il tuo algoritmo è errato e non fa ciò che vorresti.
Heisemberg
05-06-2014, 15:05
L'algoritmo che ho riportato mi calcola la media, e lo fa correttamente:
Definisco una matrice C con i valori dell'equazione dell'ellisse, poi con un ciclo riempio la matrice c con i dati che si trovano all'interno dell'ellisse e facci la media.
Il mio problema ora è come visualizzare la media nel grafico.
Heisemberg
05-06-2014, 15:17
Ci sono riuscito:
str=num2str(Media);
testo=['Media = ',str,'cd'];
text(0,0,testo,'HorizontalAlignment','center');
Grazie comunque per il tuo tempo.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.