Matlab - borrar parte de una grafica

   
Vista:

borrar parte de una grafica

Publicado por alx al_126@hotmail.com (15 intervenciones) el 18/04/2013 23:53:17
hola, estoy haciendo un programa donde "encimo" dos gráficas, estoy usando "Hold on" pero necesito que se borren los datos que estan afuera de una grafica, ya que solo quiero los que se interceptan. no se si me explique, si exista alguna funcion que haga esto o alguna idea de como lograrlo
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
Imágen de perfil de JOSE JEREMIAS CABALLERO

borrar parte de una grafica

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3432 intervenciones) el 19/04/2013 02:34:44
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
clear all
close all
figure(1);
x=linspace(-pi,pi);
plot(x,sin(x)),
hold on,
plot(x,cos(x),'r'),
hold off,
axis off
 
figure(2);
x=linspace(-pi,pi);
plot(x,sin(x)),
hold on,
plot(x,cos(x),'r'),
hold off,
set(gca, 'xtick',[]),
set(gca,'ytick',[])



1
2
EXECUCION
>> desaparecer_los_ejes_de_la_figura


Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
jjcc94@hotmail.com

http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
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

borrar parte de una grafica

Publicado por alx al_126@hotmail.com (15 intervenciones) el 19/04/2013 22:33:55
no se si se pueda usar SET con graficas en 3D, que es como lo estoy trabajando. Lo que quiero hacer es que de una grafica con n cantidad de puntos me muestre solo cierta parte y lo demas lo oculte o borre como sea, no se si me explique
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

borrar parte de una grafica

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3432 intervenciones) el 19/04/2013 22:45:06
Bueno dijiste que estabas trabajando en 3-dimensiones.
Seria bueno que pusieras al foro lo que estas haciendo, así te pueda ayudar con rapidez.
mejor usa la opción de color, y usa el color del fondo de tu figura, así no podrás ver los puntos que no deseas, pues se va a confundir con el fondo de pantalla.


Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
jjcc94@hotmail.com

http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
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

borrar parte de una grafica

Publicado por alx al_126@hotmail.com (15 intervenciones) el 20/04/2013 00:15:07
lo que quiero hacer es borrar los puntos que esten afuera de la esfera
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
clear all
clc
 
n=input('¿CUANTAS CELDAS TIENE EL CUBO FCC?')
x = 0:1:n; y = 0:1:n; z = 0:1:n;
%inicio cubo blanco
[X1 Y1 Z1] = meshgrid(x([1 end]),y,z);
X1 = permute(X1,[2 1 3]); Y1 = permute(Y1,[2 1 3]); Z1 = permute(Z1,[2 1 3]);
X1(end+1,:,:) = NaN; Y1(end+1,:,:) = NaN; Z1(end+1,:,:) = NaN;
[X2 Y2 Z2] = meshgrid(x,y([1 end]),z);
X2(end+1,:,:) = NaN; Y2(end+1,:,:) = NaN; Z2(end+1,:,:) = NaN;
[X3 Y3 Z3] = meshgrid(x,y,z([1 end]));
X3 = permute(X3,[3 1 2]); Y3 = permute(Y3,[3 1 2]); Z3 = permute(Z3,[3 1 2]);
X3(end+1,:,:) = NaN; Y3(end+1,:,:) = NaN; Z3(end+1,:,:) = NaN;
%#figure('Renderer','opengl')
h = line([X1(:);X2(:);X3(:)], [Y1(:);Y2(:);Y3(:)], [Z1(:);Z2(:);Z3(:)]);
set(h, 'Color',[1 1 1], 'LineWidth',1, 'LineStyle','-')
%fin cubo blanco
 
 
hold on
 
 
%inicio esfera
 
r = (.5*n) * ones(50, 50);
[th, phi] = meshgrid(linspace(0, 2*pi, 50), linspace(-pi, pi, 50));
[i,j,k] = sph2cart(th, phi, r);
i = i + .5*n;
j = j + .5*n;
k= k + .5*n;
 
surface(i,j,k,'FaceColor', 'none')
 
 
%inicio atomos
hold on
 
 
for z=0:n
    hold on
 
for y=0:n
    hold on
 
for x=0:n
    hold on
  % if x<=e  && y>=r && z>=t 
    plot3(x,y,z,'o')
   % end
end
end
end
hold on
 
%for para puntos medios 
for c=0:n-1
    hold on
    c=c+.5
for b=0:n-1
    hold on
    b=b+.5
for a=0:n
    hold on
 
    %if x<=i %&& y<=j &&z<=k
    plot3(a,b,c,'ro')
    %  end
end
end
end
for c=.5:n
    hold on
    for b=0:n
        hold on
        for a=0:n-1
            hold on
            a=a+.5
            plot3(a,b,c,'ro')
        end
    end
end
 
 
for c=0:n
    hold on
 
    for b=.5:n
        hold on
        for a=0:n-1
            hold on
            a=a+.5
            plot3(a,b,c,'ro')
        end
    end
end
%fin atomos
 
hold on
 
 
axis off
view(3), axis vis3d
camproj perspective, rotate3d on

yo pienso que si se podria hacer con set , como habia dicho o otra forma mas sencilla
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

borrar parte de una grafica

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3432 intervenciones) el 20/04/2013 02:48:11
Filtrado por José Jeremías Caballero, asesor de proyectos con Matlab.
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
clear all
close all
n=input('¿CUANTAS CELDAS TIENE EL CUBO FCC?: ');
x=0:n; y=0:n; z=0:n;
%inicio cubo blanco
[X1,Y1,Z1]=meshgrid(x([1 end]),y,z);X1 = permute(X1,[2 1 3]);
Y1 = permute(Y1,[2 1 3]); Z1 = permute(Z1,[2 1 3]);
X1(end+1,:,:) = NaN; Y1(end+1,:,:) = NaN; Z1(end+1,:,:)=NaN;
[X2 Y2 Z2] = meshgrid(x,y([1 end]),z);
X2(end+1,:,:) = NaN; Y2(end+1,:,:) = NaN; Z2(end+1,:,:) = NaN;
[X3 Y3 Z3] = meshgrid(x,y,z([1 end]));
X3 = permute(X3,[3 1 2]); Y3 = permute(Y3,[3 1 2]); Z3=permute(Z3,[3 1 2]);
X3(end+1,:,:) = NaN; Y3(end+1,:,:) = NaN; Z3(end+1,:,:)=NaN;
h = line([X1(:);X2(:);X3(:)], [Y1(:);Y2(:);Y3(:)], [Z1(:);Z2(:);Z3(:)]);
set(h, 'Color',[1 1 1], 'LineWidth',1, 'LineStyle','-')
%fin cubo blanco
hold on
%inicio esfera
r=0.5*n*ones(50,50);
[th,phi]=meshgrid(linspace(0,2*pi,50),linspace(-pi,pi,50));
[i,j,k]=sph2cart(th,phi,r);
i=i+0.5*n;
j=j+0.5*n;
k=k+0.5*n;
surface(i,j,k,'FaceColor', 'none')
%inicio atomos
c=[n/2 n/2 n/2];
r=n/2;
for z1=0:n
    for y1=0:n
        for x1=0:n
             if norm((c-[z1,y1,x1]))<=r
               plot3(x1,y1,z1,'bo')
            end
        end
    end
end
% 
% %for para puntos medios 
for c1=0:n-1
    c1=c1+0.5;
    for b1=0:n-1
        b1=b1+0.5;
        for a1=0:n
            if norm((c-[c1,b1,a1]))<=r
            plot3(a1,b1,c1,'ro')
            end
        end
    end
end
% 
for c2=0:n
    for b2=0:n
        for a2=0:n-1
            a2=a2+0.5;
            if norm((c-[c2,b2,a2]))<=r
            plot3(a2,b2,c2,'go')
            end
        end
    end
end
 
for c3=0:n
    for b3=0:n
        for a3=0:n-1
           a3=a3+0.5;
           if norm((c-[c3,b3,a3]))<=r
            plot3(a3,b3,c3,'mo')
           end
        end
    end
end
%fin atomos
hold off
axis off
 view(3), axis vis3d
 camproj perspective, rotate3d on


1
2
3
EXECUTION
>> esferas1
¿CUANTAS CELDAS TIENE EL CUBO FCC?: 10


Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
jjcc94@hotmail.com

http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
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 Dave

borrar parte de una grafica

Publicado por Dave correa.dave30@gmail.com (934 intervenciones) el 20/04/2013 02:55:27
Hola Alx;

Tu consulta no es del todo clara, pero igualmente te dejo un ejemplo de como podría para graficar un segmento de una señal original.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
clear all,close all
 
% Señal original
x = 0:0.1:5;
y = x.* x + 5*sin(x*pi);
 
% Busca los x >= 2
ind=find(x>2);
xx = x(ind);
yy = y(ind);
 
figure
subplot(211)
plot(x,y)
title('Señal Original')
xlim([min(x) max(x)])
 
subplot(212)
plot(xx,yy)
title('Segmento de Señal')
xlim([min(x) max(x)])


Por otro lado, aprovecho en comentarte sobre mis servicios de programación en Matlab (http://fismatlab.blogspot.com/), si deseas puedes enviarme tus datos a mi correo para poder analizarlo y ver en que te puedo ayudar o asesorar.

Espero que sea de alguna ayuda.

Saludos
Dave Correa
correa.dave30@gmail.com
Servicios de Programación Matlab
http://fismatlab.blogspot.com/
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

borrar parte de una grafica

Publicado por alx al_126@hotmail.com (15 intervenciones) el 23/04/2013 23:29:47
gracias a ambos, ya entendi bien lo que me faltaba
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