|
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 - Richi254
26
« en: Jueves 15 de Octubre de 2009, 12:22 »
Hola amigos, que tal? Tengo un problemilla que no encuentro de donde puede venir. Os comento: Tengo realizado un programa sobre una GUIDE que llama a otra y he hecho un ejecutable (.exe) del conjunto para poder usar el programa en un ordenador que no tenga MATLAB instalado. He realizado la instalaciòn del programa en un ordenador que no tiene MATLAB instalado y cuando lo he ejecutado, la aplicaciòn se ha abierto, pero seguidamente se ha cerrado sin dejar hacer nada. ¿Os ha pasado esto alguna vez? ¿Sabe alguièn a que puede deberse?
¡Muchas Gracias!
27
« en: Jueves 17 de Septiembre de 2009, 21:40 »
Hola amigo, yo tampoco estoy muy puesto en esto, pero aquí te dejo un enlace que espero que te sea de ayuda. http://www.youtube.com/watch?v=U1pktRbQohwEste tío es genial !! Hay muchos más videos de él. UN SALUDO!
28
« en: Jueves 20 de Agosto de 2009, 20:06 »
ok, no importa, como winopen es equivalente ha hacer doble click, lo único que hay que hacer es poner el archivo ejecutable de cada programa. Sería así: winopen('WINWORD.EXE') para el word winopen('POWERPNT.EXE') para el power point winopen('EXCEL.EXE') para excel winopen('ACCESS.EXE') para access
Estos archivos se encuentran, normalmente, en C:Archivos de programaMicrosoft OfficeOFFICE11. Los copias en la carpeta work de MATLAB o cambias el path para hacerlo.
29
« en: Jueves 20 de Agosto de 2009, 00:12 »
Es muy sencillo, usa la función winopen('nombre_archivo.doc'), Esta función es equivalente a hacer doble click en el archivo especificado. Si el archivo no va ha ser siempre el mismo, puedes guardar el nombre del archivo de la siguiente forma: a=input('Introduzca el nombre del archivo:'); winopen(a); y listo!!  Mira la ayuda de MATLAB para profundizar más si lo deseas o escribe en la ventana de comandos help winopen. SUERTE!
30
« en: Viernes 3 de Julio de 2009, 19:21 »
Usa la funcion xlswrite . de este modo: xlswrite('nombre_archivo', M) Esta función escribe la matriz M en un archivo excel llamado "nombre_archivo", La matriz es mxn ok? pues para que no te de un fallo m < 65536 y n < 256 si usas Microsoft EXCEL 2003 ya que este es el límite para las hojas de calculo de esta versión. Si usas EXCEL 2007 no tendras este problema porque creo que pusieron el límite en 1.000.000 x 1.000.000 de celdas  Las funciones xlsread también te puede ser util, esta es analoga a la anterior la diferencia es que se "lee" un archivo excel. Otra función util cuando se trabaja con los dos programas simultaneamente es la winopen que es el equivalente ha hacer doble click sobre el archivo que quieras(por ejemplo- winopen(archivo_matriz.xls) abrirá el archivo con el nombre archivo_matriz.xls, pero ten en cuenta que tiene que estar en el mismo path donde se está trabajando.) En la ayuda de matlab puedes profundizar más sobre estas funciones. Espero que te sea útil todo esto. UN SALUDO.
31
« en: Viernes 3 de Julio de 2009, 19:07 »
debería decir cual es esa función, pues a otra persona le puede servir. Ya que lo has conseguido, compartelo. GRACIAS.
32
« en: Jueves 11 de Junio de 2009, 19:21 »
AY!! con que quieres que te hagan los deberes eh? jeje!  El problema es que la mayoría (creo) de los que andamos por aquí no sabremos los metodos esos que mencionas, así que del todo no podremos ayudarte, pero para darte pie te digo que para los apartados i, ii, iii te pueden ser utiles estas funciones: i --> roots() calcula las raices de un polinomio, plot() para dibujar funciones y for para hacer bucles. ii --> input() para pedir datos por teclado. Puedes ver la ayuda para estas funciones usando help roots, help plot, hel for o help input. O también y será mejor en la ayuda de MATLAB F1 Suerte!
33
« en: Jueves 11 de Junio de 2009, 19:08 »
Las dos barras "||" hacen la función de or (suma lógica), una sola barra "|" creo que no tiene ningún sentido, te dará un error. Cuando uses las dos barras, las variables tienen que ser lógicas, si no te dará error. Echa un vistazo a la ayuda F1 o help if para confirmar y ampliar conocimientos
34
« en: Sábado 6 de Junio de 2009, 04:56 »
Dado un capital C, que se coloca en una cuenta bancaria a un interés anual R, averiguar al cabo de cuántos años se doblará el capital. cont=0 ban=1 x=input('Dame capital:'); y=input('Dame interes:'); Doble=2*x; while(ban==1) x=x+x*y; cont=cont+1 if x>=Doble ban=0; end end fprintf('El total del capital es: %d',cont) Los input los tenias que poner fuera del bucle si no te estaría preguntando en cada iteración, break es para for, en lugar de break como habrás visto lo que hago es cambiar la condición(ban=0;), Lo que no estoy seguro es lo de x=x+x*y yo lo he pensado así: x=20 y=0.10 (10% de interés) entonces x=20+20*0.1=20.2 en la próxima será: x=20.2+20.2*0.1=20.402 y así sucesivamente hasta llegar al valor que sea igual o mayor a 40 que es la variable Doble. Espero que sí  Gracias por su ayuda.
35
« en: Sábado 6 de Junio de 2009, 04:40 »
ESTE ES, que las prisas no son buenas amigas, jeje  C=input('Introduzca la temperatura en grados centígrados:') Farenheit=C*1.8+32
36
« en: Sábado 6 de Junio de 2009, 04:38 »
input lleva comillas '' C=input('Introduzca .....')
ok?
37
« en: Sábado 6 de Junio de 2009, 04:37 »
Tioooooooo!!! esto ya es......MUY MUY MUY FÁCIL!!!
C=input(Introduzca la temperatura en grados centígrados:) Farenheit=a*1.8+32
38
« en: Sábado 6 de Junio de 2009, 04:32 »
Si las calificaciones las tienes o las puedes guardar en forma de matriz de esta forma: Alumno1 primer-parcial segundo-parcial final ..... AlumnoN primer-parcial segundo-parcial final
Ejemplo: matriz= 7 8 6 5 5 5 3 5 7 1 5 4
Cada fila representa las notas de cada alumno, así la fila 1 tiene las notas del alumno1 la dos del alumno2 y así sucesivamente. De este modo se puede hacer:
for i=1:length(matriz) calificacion(i)=(matriz(i,1)+matriz(i,2)+matriz(i,3)/3); end
Así el elemento 1 del vector calificacion será la media del alumno 1, el elemento 2 la del alumno 2 y así sucesivamente.
Para pasarlo a un archivo de texto .txt puedes hacer lo siguiente: 1º crea un vector con todos los nombres de los alumnos así alumnos=('Ricardo' 'Victor' 'Rosa' 'Alberto' 'Carmen' .... 'etc') fopen(archivo.txt,'wt') for i=1:length(matriz) fprintf(%st%fn,'alumnos(i)','calificacion(i)') end fclose(archivo.txt)
39
« en: Sábado 6 de Junio de 2009, 04:13 »
prueba con la función list ;esta creo recordar que te muestra una lista con todos los archivos contenidos en el directorio que hayas asignado. Depues puedes hacer un bucle for para recorrer todos y con if ver si está, sería mas o menos así: a=list; encontrado=0: b=input('introduzca el nombre del archivo:') for i=1:length(a) if a(i)==b encontrado=1 break end end De este modo si encontrado es 1 es que el archivo existe si es 0 que no
40
« en: Lunes 1 de Junio de 2009, 19:24 »
Ok, gracias por aclararmelo porque me estaba volviendo loco  He hecho un pequeño programita en excel para recoger los datos y hago una llamada desde MATLAB de este modo: winopen(mi_archivo.xls) [numeros,caracteres]=xlsread(archivo.xls) De esta forma aunque al final tengo dos matrices y no una, ambas son del mismo tamaño y se guardan las posiciones de cada elemento, cuando te nos referimos a la matriz numeros, las posiciones en las que hay caracteres queda un 0 y al contrario con la de caracteres. >>caracteres caracteres= 'nombre' 'posicionX' 'posicionY' 'Valor' 'A1' '__' '__' '__'
41
« en: Miércoles 20 de Mayo de 2009, 14:31 »
Hola amigos, tengo un problema con la lectura de un archivo .txt que contiene unos datos que necesito manejar. El archivo tiene esta forma. Ejemplo:
Elemento______ Posición X_____ Posición Y________nombre ______A1 _________3500.0________ 2000.0_________100A ______A2 _________7800.0_________1000.0_________250A ______B1__________1000.0_________5000.0________1000B
_______(esto representa espacios en blanco)
Lo que necesitaria seria poder guardar en una matriz o vector en la que cada elemento sea el correspondiente al del archivo, por ejempo que matriz(1,1)= 'Elemento', matriz(2.2)=3500.0, etc.
El problema es que si uso A=importdata('archivo.txt') se guarda de la siguiente forma: >>A 'Elemento Posición X Posición Y Nombre' 'A1 3500.0 2000.0 100A' 'A2 7800.0 1000.0 250A' 'B1 1000.0 5000.0 1000B' es decir que si hago: >>A(1) 'Elemento Posición X Posición Y Nombre'
>>A(2) 'A1 3500.0 2000.0 100A'
Y si uso: [arch, error]=fopen(archivo.txt,'r') vector=fscanf(arch,'%c') fclose(arch)
En vector se me guarda todos los elemento pero 1 a 1, es decir, por ejemplo: >> vector(7)= t >>vector(8)= o >>vector(9)= []
y así sucesivamente, o sea que tiene en cuenta hasta los espacios en blancos. y si en lugar de usar %c en fscanf uso %d ó %f no lee nada, en ambas opciones el resultado es: >>vector= []
Espero haberlo dejado claro. Si alguién tiene alguna idea de porqué ocurre esto y como lo podría resolver se lo agradecería mucho. MUCHÍSIMAS GRACIAS DE ANTEMANO.
42
« en: Lunes 18 de Mayo de 2009, 20:38 »
Podrias explicar el algoritmo detalladamente, incluso con un pequeño ejemplo? Así será más fácil poder ayudarte. UN SALUDO!.
43
« en: Jueves 14 de Mayo de 2009, 19:35 »
Amigos ya lo conseguí, fue más fácil de lo que creía. Para que pueda ayudar a quién lo necesite, esto fue lo que hice:
[arch, error]=fopen(file,'.txt'),'wt');
if arch >-1 for j=1:2 for i=1:length(filasmatriz)-1 fprintf(arch, '%s%d %d %d %d n','A',a(i), matriz(i,j), matriz(i,j+1),A(i) ); fprintf(arch, '%s%d %d %d %d n','B',a(i), matriz(i,j), matriz(i,j+1),B(i) ); end end
fclose(arch); return else disp('El archivo no fue encontrado') end
44
« en: Jueves 14 de Mayo de 2009, 19:32 »
Amigos ya lo conseguí, fue más fácil de lo que creía. Para que pueda ayudar a quién lo necesite, esto fue lo que hice:
[arch, error]=fopen(file,'.txt'),'wt');
if arch >-1 for j=1:2 for i=1:length(filasmatriz)-1 fprintf(arch, '%d %d %d n', matriz(i,j), matriz(i,j+1),A(i) ); fprintf(arch, '%d %d %d n', matriz(i,j), matriz(i,j+1),B(i) ); end end
fclose(arch); return else disp('El archivo no fue encontrado') end
45
« en: Viernes 8 de Mayo de 2009, 19:41 »
Hola amigos, haber si puede ayudarme alguién con esto que no he usado mucho. ("FPRINTF") Tengo varios datos guardados en forma de vectores y matrices que me gustaría poder pasarlos de una forma determinada(ver ejemplo) a un archivo .txt
Ejemplo: A= 2 5 1 B= 4 5 3
C= 1 2 3 4 5 6 6 7 8
Lo que necesito es que el archivo txt tenga esta forma.
Por ejemplo: con los de arriba debería quedar así:
A1 1 2 2 B1 2 3 4 A2 4 5 5 B2 5 6 5 A3 6 7 1 B3 7 8 3
Y al final este texto: .PRO .END
46
« en: Martes 31 de Marzo de 2009, 14:31 »
Hola, prueba esto: Xmin=0; Xmax=20; Ymin=0; Ymax=20
axis([(Xmin) (Xmax) (Ymin) (Ymax)])
Con esto puedes poner el inicio y fin de los ejes que tú quieras, lo de que vaya de 5 en 5 no sé exactamente como podrías hacerlo porque MATLAB lo ajusta automaticamente. No sé quizas puedes probar haciendo algo como esto pero no se si funcionará:
Xmax=0:5:20
SUERTE
47
« en: Martes 10 de Febrero de 2009, 10:04 »
Ok, tienes razón, el problema estaba en la descomposición con numeros decimales esta 1:0.001:5; He hecho una transformación sencilla multiplicando los valores límites por 10^(nº de decimales de presición deseado) para hacer la descomposición de uno en uno y ya está. GRACIAS.
EJ: Si quiero saber si el vector formado por A=2:0.001:5; está dentro del B=1:0.001:9; Lo que hago es: A.*10^3 B.*10^3 findstr(A,B) if ans>=1 encontrado=1; else encontrado=0; end
48
« en: Miércoles 4 de Febrero de 2009, 13:36 »
Hola amigos: Tengo un problemilla, quisiera saber si un vector está dentro de otro, he estado usando la función findstr(A,B) que me da la posición en la que se encuentra uno dentro del otro, con esto me valdría. Pero no sé si es que esta función tiene un límite de parámetros, porque cuando hago esto por ejemplo: >>A=[1 2 3 4 5 6 7 8 9]; >>B=[4 5 6]; >>findstr(A,B) ans= 4 En este caso me vale, es decir, es una forma de saber que el vector B está dentro del A, el problema está en que si hago esto:
>>A=1:0.001:5; >>B=2:0.001:3; % Es evidente de que B está dentro de A ¿no? >>findstr(A,B) ans= []
NO SALE! no sé porqué es, y como habreis deducido lo que necesito es poder hacerlo como en el segundo caso. ¿Podría alguién ayudarme?¿Hay alguna función para esto? Habia pensado hacerlo con dos bucles for e ir comparando elemento a elemento pero me gustaría saber antes si hay alguna función similar a la findstr que sea capaz de hacerlo. ¡GRACIAS!
49
« en: Jueves 23 de Octubre de 2008, 18:55 »
Lo intento ahora mismo, muchas gracias. Ah, el archivo de texto lo genera un programa de diseño, son coordenadas cartesianas como habrás supuesto. Y no, no puedo cambiar el formato de salida de los datos  (MÁS TRABAJO!) En fin, a programar!! GRACIAS de nuevo. UN SALUDO.
50
« en: Jueves 23 de Octubre de 2008, 13:38 »
Hola Victor: Como bien dices, si los datos númericos están en un .txt se pueden extraer. El problema es que como haya sólo una letra ya no lee nada. Sólo los lee poniendo %c, pero claro los interpreta a cada uno como un elemento del vector y además se le asigna el valor del código ASCII. El archivo del que quiero sacar los datos viene de esta forma:
X100000Y200000* X200000Y200000* X250000Y350000* ....
Entonces yo lo que quisiera es guardar en dos vectores(X e Y,por ejemplo) los datos, de manera que: >> X X= 100000 200000 250000 ...
>> Y Y= 2000000 200000 350000 ...
¿Esto se puede hacer? Si puedes ayudarme, te lo agradezco muchísimo. GRACIAS DE ANTEMANO. UN SALUDO.
|
|
|