Matlab - Guardar variables

 
Vista:

Guardar variables

Publicado por Deivy Ramírez (2 intervenciones) el 21/03/2020 17:40:22
Problema original: "graficar m cantidad de estrellas es un plano X-Y ubicados aleatoriamente y allí indicar y mostrar la cantidad de estrellas que se encuentran intersectadas."

Mi problema: Dadas unas gráficas necesito guardar los valores de las mismas para poder compararlas más adelante
¿cómo lo hago?
En general ¿cómo se podrían guardar variables del ciclo for en variables distintas? es decir en cada iteración se guarde en una variable diferente
Gracias
la función que se utilizará en cuestión es:
Esta me ayuda para generar las figuras en forma de "estrella"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function [z1,z2] = F_final3_1(x1,y1,x2,y2,n)
f1=0;
a1=length(y1)/n;
a3=floor(a1);
a2=0;
for i = 1:n*2
    if  rem(i,2)==0
        a2=a2+a3;
        g1(1,i) = x1(a2);
        g2(1,i) = y1(1,a2);
    else
        f1=f1+1;
        g1(1,i) = x2(1,f1);
        g2(1,i) = y2(1,f1);
    end
end
z1=[g1,x2(1)];
z2=[g2,y2(1)];
end

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
clc;clear;clf('reset')
l=randi([1,7])
n=randi([4,20],[1,l])% Cantidad de puntas y cantidad de estrellas
z1=0; z2=0; h1=0;
for i=1:length(n)
    a=z1; b=z2; c=h1;
    r1=randi([2,7]);%el radio del circulo
    r2=randi([9,15]);%el radio del poligono
    h1=randi([0,100]);
    dx1= 1;       dx2= 360/n(i);
    x01= 1:dx1:360;   x02= 1:dx2:360;
    % convierte a coordenadas cartesianas
    x1 = r1*cos((x01*pi/180)-(0.216))+h1;
    y1 = r1*sin((x01*pi/180)-(0.216))+h1;
    x2 = r2*cos(x02*pi/180)+h1;
    y2 = r2*sin(x02*pi/180)+h1;
    [z1,z2]=F_final3_1(x1,y1,x2,y2,n(i));
    hold on
    plot(z1,z2);
end
hold off
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
Val: 8.042
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Guardar variables

Publicado por JOSE JEREMIAS CABALLERO (5780 intervenciones) el 21/03/2020 18:44:16
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
close all
clc;clear;clf('reset')
l=randi([1,7]);
n=randi([4,20],[1,l]);% Cantidad de puntas y cantidad de estrellas
z1=0; z2=0; h1=0;
for i=1:length(n)
    a=z1; b=z2; c=h1;
    r1=randi([2,7]);%el radio del circulo
    r2=randi([9,15]);%el radio del poligono
    h1=randi([0,100]);
    dx1= 1;       dx2= 360/n(i);
    x01= 1:dx1:360;   x02= 1:dx2:360;
    % convierte a coordenadas cartesianas
    x1 = r1*cos((x01*pi/180)-(0.216))+h1;
    y1 = r1*sin((x01*pi/180)-(0.216))+h1;
    x2 = r2*cos(x02*pi/180)+h1;
    y2 = r2*sin(x02*pi/180)+h1;
    [z1,z2]=F_final3_1(x1,y1,x2,y2,n(i));
    hold on
   datos=[z1' z2'];
     eval([['datos',num2str(i)],'=datos'])
 
   plot(z1,z2);
end
hold off
 
 
function [z1,z2] = F_final3_1(x1,y1,x2,y2,n)
f1=0;
a1=length(y1)/n;
a3=floor(a1);
a2=0;
for i = 1:n*2
    if  rem(i,2)==0
        a2=a2+a3;
        g1(1,i) = x1(a2);
        g2(1,i) = y1(1,a2);
    else
        f1=f1+1;
        g1(1,i) = x2(1,f1);
        g2(1,i) = y2(1,f1);
    end
end
z1=[g1,x2(1)];
z2=[g2,y2(1)];
end
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