Matlab - Función 3D encontrar su segundo valor máximo.

 
Vista:
sin imagen de perfil
Val: 352
Ha disminuido 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Función 3D encontrar su segundo valor máximo.

Publicado por Ricardo (218 intervenciones) el 24/07/2019 20:18:52
Buenos días.

Tengo una función en 3D es decir que la función esta regida por una función matemática que involucra los ángulos de elevación (tetha, de 0º a 181º) y azimut(phi, de 0º a 360º) y necesito determinar su segundo valor máximo de esta función.
Ver archivo adjunto donde se muestra la graficada la función.

Espero me ayuden pues lo he intentado de muchas maneras y no he podido.

Saludos y gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 352
Ha disminuido 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Función 3D encontrar su segundo valor máximo.

Publicado por Ricardo (218 intervenciones) el 26/07/2019 18:56:12
Hola buenos días.


Desde esta pagina descargue en el escritorio de la computadora el archivo picture1.rar , en seguida di doble clic en el icono generado se abrió una ventana mostrándome lo que ese archivo contiene y de ahí seleccione y arrastre el archivo Picture1.png hacia el escritorio de la computadora y doble click al icono del archivo png y se mostró la imagen de la gráfica en cuestión.

Espero haga lo mismo y vea usted la gráfica a la que me refiero. Esta gráfica en cada iteración cambia.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 352
Ha disminuido 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Función 3D encontrar su segundo valor máximo.

Publicado por Ricardo (218 intervenciones) el 26/07/2019 19:40:11
Buenos días.

Volví a comprimir el archivo a ver si ahora lo puede descomprimir, de cualquier manera le mande por correo la imagen de la gráfica, esta gráfica cambia en cada iteración del código.

mi correo es [email protected] y el asunto es Gráfica 3D


Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 352
Ha disminuido 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Función 3D encontrar su segundo valor máximo.

Publicado por Ricardo (218 intervenciones) el 26/07/2019 20:11:01
Buenos días.
Le mande por correo el código.

Recuerde, cada vez que se ejecuta el código la gráfica es diferente.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
sin imagen de perfil
Val: 352
Ha disminuido 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Función 3D encontrar su segundo valor máximo.

Publicado por Ricardo (218 intervenciones) el 26/07/2019 23:27:34
Buenas tardes.

El código en Matlab lee primero un archivo para poder ejecutarse, ese archivo tiene 9.44 MB y no lo puedo cargar en esta plataforma, esa es la razón del por que se lo envié por correo junto con el código en Matlab.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Función 3D encontrar su segundo valor máximo.

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 26/07/2019 23:29:52
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
clc; clear; close all; format short
data=importdata('Sph3D.txt');                            % Data import
Sph3D=data.data(:,3);                                    % Extract column
Mm=reshape(Sph3D,181,360);                               % Convert column to matrix
Ma=Mm';
theta=linspace(0.01,pi,181);
phi=linspace(0,2*pi,360);
[THETA,PHI]=meshgrid(theta,phi);
dtheta=pi/181;
dphi=pi/360;
minx = 0.50; maxx = 2.23; dx = (maxx-minx).*rand(1,1) + minx;
miny = 1.83; maxy = 3.45; dy = (maxy-miny).*rand(1,1) + miny;
deltax=0;  deltay=0;
k=2*pi;                                                                 % Wave number
psix=(k*dx*sin(THETA).*cos(PHI))+deltay;
psiy=(k*dy*sin(THETA).*sin(PHI))+deltay;
AFy=exp(j*(0)*psiy)+exp(j*(1)*psiy)+exp(j*(2)*psiy);                                                    
AFx=exp(j*(0)*psix)+exp(j*(1)*psix)+exp(j*(2)*psix);
AF=exp(j*(0)*psiy).*exp(j*(0)*psix)+exp(j*(0)*psiy).*exp(j*(1)*psix)+exp(j*(0)*psiy).*exp(j*(2)*psix)+exp(j*(1)*psiy).*exp(j*(0)*psix)+exp(j*(0)*psiy).*exp(j*(1)*psix)+exp(j*(0)*psiy).*exp(j*(2)*psix)+exp(j*(2)*psiy).*exp(j*(0)*psix)+exp(j*(0)*psiy).*exp(j*(1)*psix)+exp(j*(0)*psiy).*exp(j*(2)*psix);
AF=AFx.*AFy;
AFmag=abs(AF);
% Directivity Calculation _____________________________________________
Utheta=AFmag.^2;
Prad=sum(sum(Utheta.*sin(THETA)*dtheta*dphi));
F=4*pi*Utheta/Prad;
D=(F).*abs(Ma);
DdB=10.*log10(D);
figure
 mesh(D);shading interp; colormap('default');
title('3D Directivity as function of \theta and \phi','FontSize',15);
xlabel('\theta [deg]','FontSize',10);
ylabel('\phi [deg]','FontSize',10);
zlabel('Directivity','FontSize',10);
 
[A1,B1]=max(max(D));
[c1,f1]=find(D==A1)
A1
hold on
plot3(f1(1),c1(1),A1,'*')
D(c1(1),f1(1))=-inf;
[A2,B2]=max(max(D));
[c2,f2]=find(D==A2)
A2
plot3(f2(1),c2(1),A2,'*')
 view(0,0)
grid on
hold off


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
>> practica
 
c1 =
 
   180
 
 
f1 =
 
   146
 
 
A1 =
 
  163.8984
 
 
c2 =
 
   181
 
 
f2 =
 
   146
 
 
A2 =
 
  163.5324
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 352
Ha disminuido 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Función 3D encontrar su segundo valor máximo.

Publicado por Ricardo (218 intervenciones) el 26/07/2019 23:33:50
Hola..

Creo que no me exprese bien.
Con lo que me ha resuelto ya se el valor máximo del pico mas alto de la señal, ahora necesito saber el valor máximo del segundo pico que le sigue al primer pico mas alto.
Es decir necesito los dos valores máximos de los dos picos mas altos.


Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 352
Ha disminuido 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Función 3D encontrar su segundo valor máximo.

Publicado por Ricardo (218 intervenciones) el 27/07/2019 00:45:01
Correcto, pero los valores de A1 y A2 pertenecen a una misma elevación, lo que necesito saber es el máximo de la segunda elevación seguida inferior a la primera elevación.

Por ejemplo supongamos que la gráfica esta compuesta de solo dos elevaciones y que el máximo valor de la elevación mas alta su valor es 171.80
Me interesa saber el máximo valor de la segunda elevación.

Saludos.




Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar