• Sábado 2 de Agosto de 2025, 01:41

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - allisap

Páginas: 1 2 [3] 4 5 ... 11
51
Matlab / Re: error en la funcion mod
« en: Viernes 22 de Mayo de 2009, 17:58 »
ya lo probe y me pasa lo mismo
creo que lo que esta pasando es que el numero es demasiado grande para la funcion mod

si lo que quieres obtener son los digitos de un numero tan grande, prueba a hacerlo con ciclos y restas sucesivas

saludos

 Victor Pasilla Campos

52
Matlab / Re: Problema con la lectura de .txt
« en: Viernes 22 de Mayo de 2009, 17:46 »
Cita de: "Richi254"
por ejempo que matriz(1,1)= 'Elemento', matriz(2.2)=3500.0, etc.

esto no es posible porque quieres que en una sola matriz esten combinados textos y numeros
una matriz debe ser de numeros o de de cadenas pero no combinados

saludos

Victor Pasilla

53
Matlab / Re: Sobre GUI
« en: Viernes 22 de Mayo de 2009, 17:07 »
Saludos

mira, lo puedes hacer con algo como esto que hice para una aplicacion de reconocimiento de imagenes

s1=uicontrol(gcf,'Style','slider',...
    'Min',0,'Max',255,...
    'Position',[Tx-150,Ty*3/7,140,25],...
   'CallBack',['V1=get(s1,''Value'');',...
   'A1=ProImag(6,V1,A);image(A1);A=A1;']);

aqui tengo un slider para mover los niveles de contraste, estos valores se los envio a otro archivo m que llamo como funcion (es la funcion ProImag)
esto lo hago desde un callback

y asi puedes llamar a las funciones que quieras....

espero te sirva...

Victor Pasilla Campos

54
Matlab / Re: programar una matricez
« en: Viernes 15 de Mayo de 2009, 17:27 »
Saludos

bueno creo que estas algo confundido acerca de lo que estas preguntando....

primero

Citar
Me encargaron especificamente programar una matriz en matlab,


una matriz es un tabla de elementos numericos que pueden sumarse o multiplicarse, y esta formada por filas y columnas

matlab funciona completamente por matrices, aun  cuando definas una solo elemento por ejemplo con:

a=5;

defines una matriz 'a' de 1x1 que es igual a 5

si escribes a=[4 5 3; 3 6 8 ; 5 7 8];
estas definiendo una matriz
    4 5 3
a= 3 6 8
    5 7 8


asi que decir que tienes que programar una matriz no tiene mucho sentido en realidad

segundo es un poco aventurado comenzar a escribir codigo sin saber exactamente lo quieres hacer, es como dar golpes al aire (solo te cansaras),

te recomiendo que leas un poco mas sobre el tema para que entiendas realmente que quieres hacer

saludos

Victor Pasilla Campos

55
Matlab / Re: Crear un fichero .txt pasando variables
« en: Jueves 14 de Mayo de 2009, 20:43 »
Excelente :good:

y que bueno que publicaste como es que lo resolviste y no dejaste el tema a medias
asi le puede servir a alguien mas


saludos

Victor Pasilla

56
Matlab / Re: no me funciona este algoritmo
« en: Jueves 7 de Mayo de 2009, 21:14 »
:hola:
bueno este error es porque tu funcion GaussSeidel necesita los parametros A y b para trabajar
pero no defines antes cuanto vale A y b

Victor Pasilla Campos :hola:

57
Matlab / Re: no anda el flops
« en: Jueves 7 de Mayo de 2009, 21:10 »
Saludos

bueno segun la ayuda del matlab la instruccion flops cuenta el numero de operaciones de coma flotante que realices, pero fue eliminada a partir de la versión 6.5 , porque era obsoleta, lo que puedes hacer es:

1. elimina el flops , y cuenta la operaciones de coma flotante con un contador
2. elimina el warning como te dice el matlab, escribiendo "warning off MATLAB:flops:UnavailableFunction" con esto eliminas el warning pero no contaras las operaciones de coma flotante , porque la funcion ya no existe .

Victor Pasilla Campos

58
Matlab / Re: por que me da error al intentar abrir el archivo??
« en: Miércoles 6 de Mayo de 2009, 04:00 »
hola ,  te coloco algunos comentarios  en tu programa a ver si te pueden servir
 

function suma  % si es el programa principal, no necesita ser una funcion

fid = fopen('archivo.m','r');   % aqui abres el primer archivo que contiene los demas nombres de archivos

while feof(fid) == 0

filename = fgetl(fid);
disp(filename)
fid2=fopen('2006060200522900dBZ.vol.ascii')  % aqui abres otro archivo ,
%pero creo que querias abrir el obtenido en filename por lo que deberias tener
%fid2=fopen(filename)-,
% aqui deberias hacer algo con el archivo abierto
% y luego cerrarlo, porque si no lo cierras al terminar el while tendrias muchos archivos abiertos
%y solo estas cerrando el archivo principal fuera del while.

end
fclose(fid);   % este close fid cierra el archivo principal
% otra opcion si realmente quieres tener todos los archivos abiertos, es cerrarlos al final
% usando fclose (all);

end


espero te sirva

Saludos
Victor Pasilla

59
Matlab / Re: ordenación de matrices
« en: Lunes 4 de Mayo de 2009, 15:58 »
ahhhhh ya te entendi :D  :D


no quieres odenar todos los vectores de mayor a menor, solo uno de ellos , pero quieres que la correspondencia permanezca...

bueno, eso no se puede hacer con comando... tienes que hacerlo desde abajo, programandolo manualmente



saludos

Victor Pasilla Campos

60
Matlab / Re: ordenación de matrices
« en: Lunes 4 de Mayo de 2009, 02:34 »
podrias explicar mejor como deseas ordenar las matrices , tu ejemplo no es muy claro,...

por otro lado,...
si lo que quieres es solo ordenar una parte de la matriz, puedes tomar  una parte de la matriz y asignarla a otra variable ordenarla y luego volver a formar la matriz resultado...


Saludos
Victor Pasilla Campos

61
Matlab / Re: Función Pause
« en: Sábado 2 de Mayo de 2009, 20:11 »
Cita de: "Kat00"
Lo del pushbutton ya lo pensé, pero como se repite varias veces, necesitaría callbacks diferentes para cada vez que se pulse al botón...

no necesariamente, podrias usar un solo callback con una  funcion a la cual le envias como parametro un contador para determinar la grafica que corresponde

Saludos...

Victor Pasilla Campos

62
Matlab / Re: Función Pause
« en: Sábado 2 de Mayo de 2009, 18:38 »
una buena solucion y mas elegante es crear un PushButton en la ventana,
con esto al pulsar sobre el boton se pasaria a la siguiente grafica

Saludos
Victor Pasilla Campos

63
Matlab / Re: por que me da error al intentar abrir el archivo??
« en: Jueves 30 de Abril de 2009, 20:48 »
ah ok...

bueno, lo primero que veo es que el segundo fopen no tiene los atributos de lectura, segundo
dices que son 100 nombres de archivo diferentes, y la apertura de archivo la estas realizando dentro de un ciclo while
pero cierras el archivo fuera del ciclo por lo que solo vas a cerrar el ultimo, y los otros 99 van a seguir abiertos, esta no es
una buena practica, es mejor que abras un archivo operes sobre el, y luego lo cierres,

por ultimo el -1 indica que no pudo abrir el archivo primero verifica que esta en la misma carpeta y que el nombre de archivo sea correcto.

espero te sirva
Saludos
Victor Pasilla Campos

64
Matlab / Re: Lectura de Archivo de texto
« en: Jueves 30 de Abril de 2009, 19:42 »
bueno la primera parte, lo de cambiar la leyenda, eso lo puedes hacer con el comando sprintf, imprimiendo a una cadena  :)

por ejemplo el siguiente codigo te ayudara a cambiar el titulo de grafica,

Código: Matlab M
  1. x=0:0.1:8;
  2. y=sin(x);
  3. figure(1);
  4. h1=plot (x,y);
  5. num_grafica=1;
  6. cadena=sprintf ('gráfica número=%d',num_grafica);
  7. title(cadena);
  8. set (h1,'color',[0 0 1]);
  9.  

para la segunda parte de la pregunta ,lo de cambiar el color de la grafica, eso lo puedes hacer con la ultima linea ,usando el comando set para cambiar las propiedades de la grafica, observa que se cambian las propiedades del color enviado un arreglo de tres elementos (los valores R G B ),al variar estos valores varias el color de la grafica,...
espero te sirva :D

Saludos :hola:
Victor Pasilla Campos
P.D No me digas Sr :ouch:

65
Matlab / Re: por que me da error al intentar abrir el archivo??
« en: Jueves 30 de Abril de 2009, 17:35 »
si tu archivo .m solo tiene esas dos lineas de texto, ¿no es mas facil leerlar directamente?
es decir hacer esto
fid = fopen('2006060200522900dBZ.vol.ascii','r');
fid2 = fopen('2006060201022900dBZ.vol.ascii','r');

saludos

Victor Pasilla Campos

66
Matlab / Re: colorbar
« en: Martes 28 de Abril de 2009, 19:56 »
Hola

primero con
Código: Matlab M
  1.  
  2. h1=figure (1);
  3.  

haces que h1 sea el manejador de la ventana

luego con

Código: Matlab M
  1. surf(peaks(30))
  2.  

solo hace una grafica de prueba, esa seria tu grafica

y con la instrucción annotation coloca un texto en alguna parte de la pantalla
en la ayuda te da todos los parametros posibles para la función pero las partes importantes son
Position',[0.8429 0.919 0.1268 0.07402],  que le da la posicion donde va a estar el texto,el ancho y el alto , todo esta normalizado
el maximo valor posible es 1, asi que si escribes 0.5 en la coordenada en x, es la mitad de la ventana.
y al final tienes 'String',{'texto'}, aqui va el texto que quieras mostrar....

espero te sirvar

Victor Pasilla Campos
Puebla,Pue

67
Matlab / Re: Lectura de Archivo de texto
« en: Lunes 27 de Abril de 2009, 19:27 »
Saludos


primero que nada bienvenido al foro , vamos a ver en que te podemos ayudar

por como esta formado tu archivo de texto creo que estas leyendo mal tus datos en las lineas iniciales
tu tienes esto:

Código: Matlab M
  1. xcoor=fscanf(fid,'%s',3)
  2. zcoor=fscanf(fid,'%s',3)
  3. solids=fscanf(fid,'%s',4)
  4. Time1=fscanf(fid,'%s',3)
  5. y=fscanf(fid,'%s',1)
  6. var=fscanf(fid,'%s',1)
  7.  

pero de esa forma estas leyendo todo como cadenas de texto (puedes comprobarlo en el workspace, veras que aparecen como variables tipo char)
y asi con puedes utilizarlos,
intenta algo asi:

Código: Matlab M
  1. fid = fopen('prueba.txt', 'r');
  2. texto=fscanf(fid,'%s',2)
  3. xcoor=fscanf(fid,'%f',1)
  4. texto=fscanf(fid,'%s',2)
  5. zcoor=fscanf(fid,'%f',1)
  6. texto=fscanf(fid,'%s',3)
  7. solids=fscanf(fid,'%f',1)
  8. texto=fscanf(fid,'%s',2)
  9. Time1=fscanf(fid,'%f',1)
  10. texto=fscanf(fid,'%s',2)
  11. a = fscanf(fid,'%f %f',[2 , inf]);
  12.  
  13.  
aqui uso la variable temporal 'texto' para eliminar los textos o etiquetas y asi quedarme solo con  los valores numéricos, que leo como flotantes
al final en la variable a se almacena una matriz con los valores de Y y var, esto lee todos los datos hasta que encuentra otra etiqueta
de esta forma lees todos los valores y no necesitas hacerlo de uno en uno,

espero te sirva

Victor Pasilla Campos
Puebla, Pue.

68
Matlab / Re: colorbar
« en: Domingo 26 de Abril de 2009, 19:15 »
prueba esto , pone una anotacion de texto en alguna parte de la pantalla


h1=figure (1);
surf(peaks(30))
annotation1 = annotation( h1,'textbox',  'Position',[0.8429 0.919 0.1268 0.07402],  'FitHeightToText','off',  'String',{'texto'});


saludos

Victor Pasilla Campos
Puebla, Puebla

69
Matlab / Re: colorbar
« en: Miércoles 22 de Abril de 2009, 19:15 »
Saludos

bueno si lo que quieres es que la escala del colorbar tenga leyendas lo puedes hacer asi

 surf(peaks(30))
colorbar('YTickLabel', {'Freezing','Cold','Cool','Neutral','Warm','Hot','Burning'})

esto lo tome de la ayuda del matlab y funciona bien
espero te sirva

Victor Pasilla Campos

70
Matlab / Re: MATLAB EJERCICIO.. NECESITO APOYO
« en: Lunes 20 de Abril de 2009, 21:23 »
Saludos

te decia que con el comando rem puedes determinar si es par o no  de la siguiente manera

si divides un numero par entre 2 el residuo es cero, si es impar existe residuo
esto es:

Código: Matlab M
  1. a=input('numero= ');
  2. res=rem(a,2);
  3. if res==0
  4.     disp('Numero par')
  5. else
  6.     disp('Numero impar')
  7. end
  8.  

y ya, no necesitas usar un if para cada caso, imaginate si te pidieran que lo hicieras para un numero entre  1 y 1 millon,
espero te sirva,...

Victor Pasilla Campos

71
Matlab / Re: MATLAB EJERCICIO.. NECESITO APOYO
« en: Lunes 20 de Abril de 2009, 19:36 »
saludos

para lo de los pares e impares podrias hacerlo con el case, que te permite decisiones multiples, pero realmente no es la mejor forma de hacerlo
lo mejor es usar la instruccion mod o rem para determinar si es par o no

esto es  rem (numero,2)     te dara 1 si numero es impar y 0 si es par

y ya con eso esta solucionado


Victor Pasilla

72
Matlab / Re: MATLAB EJERCICIO.. NECESITO APOYO
« en: Domingo 19 de Abril de 2009, 02:49 »
para que veas que realmente queremos ayudarte ahi te va uno

Citar
8.
Leer dos números por teclado y deducir si están en orden creciente.

Código: Matlab M
  1.  
  2. a=input('primer numero= ');
  3. b=input('segundo numero= ');
  4. if a>b
  5.     disp('orden decreciente');
  6. else
  7.     disp('orden creciente');
  8. end
  9.  
  10.  


ahi puedes ver como se usa el if , ahh y usa la ayuda del matlab esta muy util

y sigue intentando, en realidad no hay mejor forma de aprender que haciendolo, veras que no es tan dificil
saludos

Victor Pasilla Campos

73
Matlab / Re: MATLAB EJERCICIO.. NECESITO APOYO
« en: Sábado 18 de Abril de 2009, 23:18 »
es cierto, no es que se te niegue el apoyo, pero ya sabes el dicho : "Dale un pescado a un hombre un dia, y no tendra hambre ese dia, enseñale a pescar
y ya no tendra hambre otro dia"

en este foro tratamos de ayudar con problemas especificos, algo que trataste de resolver tu mismo, investigando, preguntando con amigos, estudiando, e intentandolo de varias formas, pero que aun asi no encuentras solucion, entonces aqui podemos verlo de alguna otra perspectiva y te daremos algunas ideas de como resolverlo.

intentalo de esta forma y estaremos en la mejor disposicion de ayudarte.

saludos
Victor Pasilla

74
Matlab / Re: Duda al evaluar una función
« en: Sábado 18 de Abril de 2009, 00:35 »
saludos

mira creo que lo que pasa es que realmente no estas entendiendo lo que hace tu programa

en la linea donde dices

Uxy = feval(Gx, X, Y);

Uxy debe ser una matriz de 1*1 o de 1*n (dependiendo de que parametro sean X y Y Vectores o valores unicos) porque evaluas Gx en X y Y (aunque no defines Gx)

despues calculas la ecuaciones de diferencias de X-esimo orden ? con

dUdx = diff(Uxy, X);  

lo cual otra vez te dara una matriz de 1*1 o de 1*n dependiendo de si usaste valores o vectores

pero luego dices que la variable contiene  dUdx=2*x+y

eso no es cierto, arriba la definiste y es el resultado de una operacion de ecuaciones de diferencias,
y, suponiendo que te de un vector, al decir dU_dx = dUdx(x,y)
lo que dices que es dU_dx es igual al valor de la matriz dUdx en el elemento x, y,
por eso los indices deben ser positivos y enteros, son indices de la matriz no parametros de la funcion para poder hacer  2*x+y

75
Microcontroladores / Re: asesoria con respecto al uso de un pic
« en: Viernes 17 de Abril de 2009, 18:41 »
Saludos

Como dice Toph, depende de que vas a necesitar

Seleccionar el micro adecuado depende de que perifericos y sensores vas a conectar, la comunicación que vas a utilizar, cantidad de funciones que vas necesitar
(por la memoria necesaria), precio del micro, en fin, con estos datos puedes ir desde la gama baja buscando hacia arriba para encontrar uno que contenga todo lo que necesitas.

Victor Pasilla Campos

Páginas: 1 2 [3] 4 5 ... 11