Matlab - No puedo correr las variable de un gui

 
Vista:

No puedo correr las variable de un gui

Publicado por Fabian (5 intervenciones) el 08/01/2019 01:39:57
mi programa es para hacer una caminata aleatoria de n partículas.
En un gui ingreso las variable particulas, pasos y desplazamiento, las utilizo como variable globales. Pero al momento de corre el programa cuando hago un ciclo for x=1:particulas , no reconoce los valores ingresados, parece que esta corriendo el ciclo for antes de que ingrese los valores. Como hago para que el ciclo for corre despues de ingresados los valores

clear all
close all
clc
%Creamos un menu de inicio interactivo para comenzar el programa
m=menu('Desear iniciar el programa de caminata aleatoria', 'Si, comenzar el programa', 'No,acabar aquí');
%Hacemos referencia a nuestras tres variables las cuales son establecidas
%como globales pues se recurrira a otro archivo .m
global particulas
global pasos
global desplazamiento
switch m;
%En caso que corramos el programa vamos a abrir la ventana de
%ingreso de nuestras variables
case 1
% se ejecuta nuetro programa .m de interfaz interactiva
dialogo_nparticulas;
%Colocamos un cronometro
tic
%Vector para dar colores a las lineas de trayectoria
color={'r-*','g-*','b-*','k-*','y-*','m-*','r-x','g-x','b-x','k-x','y-x','m-x','c-x','c-*','r-o','g-o','b-o','k-o','y-o','m-o','c-o'};
c=char(color);
pause
%Ciclo 'for' para crear todas las partículas en el origen

for x=1:particulas
%Establecemos los puntos iniciales de movimiento
I=[0,0];%Punto inicial de movimiento
Una=[0,0];%Posición inicial de cada partícula
%Nuevo ciclo ''for para el movimiento de cada particula
for n=1:pasos
movimiento(n)=randi(5);
if movimiento(n)== 1 %Para que la partícula se que en el mismo lugar
Una=[0,0];
elseif movimiento(n)==2 %Para que la partícula se desplace a la derecha
Una=Una+[1,0]*desplazamiento;
elseif movimiento(n)==3 %Para que la partícula se desplace a la izquierda
Una=Una+[-1,0]*desplazamiento;
elseif movimiento(n)==4 %Para que la partícula se desplace para arriba
Una=Una+[0,1]*desplazamiento;
elseif movimiento(n)==5 %Para que la partícula se desplace abajo
Una=Una+[0,-1]*desplazamiento;
end
%Colocamos la trayectoria de las partículas en una matriz
I(n+1,1:2)=[Una];
%Colocamos diferentes colores a cada partícula
p=randi(21);%Randomizamos los 21 colores disponibles
%Buscamos el color que corresponde en nuestra matriz
lugar=c(m);
end
%Imprimimos las diferentes trayectorias de las particulas
plot(I(:,1),I(:,2),lugar)
pause(0.001)
title('Caminata aleatoria')
xlabel('Desplazamiento en X')
ylabel('Desplazamiento en Y')
axis square
end
%En Caso de haber abierto por error el programa podemos cerrarlo aqui
case 2
close all
end
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