Matlab - Introducir un input una sola vez

 
Vista:

Introducir un input una sola vez

Publicado por CruZ (2 intervenciones) el 28/10/2010 11:10:42
Hola, buenas a todos. Tengo un archivo script donde se encuentra todos los datos necesarios para realizar un monton de operaciones desde diferentes archivos .M (14 o 15 archivos con otras tantas funciones...). Estos datos son fijos, almacenados dentro del archivo inicial. resulta q qremos modificarlo para q cada vez q se ejecute el "programa" completo, en vez de usar esos datos fijos, los pida como inputs al usuario. el tema es que si los ponemos como inputs, el programa se pone a operar (tarda unos 3 min en acabar) pero cada vez q ace uso del dato introducido por el usuario en las iteraciones y operaciones t pide q lo introduzcas como input. Será unas 30 o 40 introducciones del valor, cuando éste siempre es el mismo.
Mi pregunta es: ¿podría pedirlo como input al usuario, y que solo fuera necesario introducirlo una vez?¿ que luego el programa cogiera siempre el valor que se ha introducido inicialmente, y no lo pidiera 50 veces?

He probado con poner la variable persistente, en vez de global (como lo tngo en todas las funciones que lo usan...) pero m da un comando de error diciendome q tiene q ser persistente antes de cualquier uso o algo asi. tambien e probado a ponerlo persistente en cada funcion, ademas de la script, y tambien m sale error.

Si alguien puede ayudarme, estaria muy agradecido.

Y ya que estamos, alguien conoce un buen manual de programacion, m da igual español o ingles?? por que solo tengo manuales de operaciones, pero escasisimos en programacion.

Muchas gracias, de antemano.
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

RE:Introducir un input una sola vez

Publicado por Jorge (226 intervenciones) el 28/10/2010 19:07:55
Bueno, no entiendo bien tu problema, pero se me ocurre que deberías leer los datos automáticamente y no introducirlos por teclado.

Suponiendo que tienes varios archivos de texto con los datos, Matlab puede leer esos archivos y manipularlos como convenga. Ya no necesitas entrar en iteraciones, porque el dato ya lo tienes en memoria.
Aquí hay un ejemplo completo de ello:
http://www.matrixlab-examples.com/data-analysis.html

Si tienes los datos en tablas de Excel, también Matlab puede leerlos.
Aquí hay otro ejemplo con código para eso:
http://www.matrixlab-examples.com/ms-excel.html

El asunto es que si ya tienes las tablas, no las introduzcas manualmente. Haz que Matlab las lea, procese y guarde si es necesario en otros archivos.

El sitio que te menciono es un tutorial de Matlab con muchos ejemplos resueltos.
No es un manual propiamente, sino un acercamiento menos teórico y más práctico.

Saludos,
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

RE:Introducir un input una sola vez

Publicado por CruZ (2 intervenciones) el 29/10/2010 12:04:20
Ya, algo he visto de que lee archivos de excel, o de bloc de notas, pero no es lo q quiero para el programa. El asunto es que el programa inicial simplemente realiza las operaciones q tu has programado, solo con "llamarle" desde el command windows ese, pero tu lo yamas y usa unos datos metidos en uno de los .m, q es arxivo script o de datos, unos datos fijos (de un motor especifico). yo lo q quiero esq esos datos, q son 3 o 4 que me definen ese motor, se puedan meter interactivamente mediante inputs, pues si variamos esos inputs podriamos usar el programa de forma mas general, para mas motores, a eleccion del usuario, y no el que fijie el programador.
Lo de iterar o no, creo que no itera el propio valor introducido, sino que realiza muxas operaciones con ese valor q tu introduces, y en vez de "guardarlo" en la memoria o algo asi una vez introducido (1 vez) cada vez que lo necesita m pide que lo introduzca de nuevo, y claro en total serán unas 40 o 50 veces las que debo introducir ese mismo valor, constante. Lo que m gustaria es que ubiera una orden o comando que hiciera que m pidiera el input, la principio, y se guardara ya para q las proximas veces q lo necesiten los .m no m lo vuelva a pedir como input, sino q es el valor que e introducido al principio. No se si me explico la verdad, jejeje.
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

RE:Introducir un input una sola vez

Publicado por Jorge (226 intervenciones) el 29/10/2010 22:45:26
Ok. Entonces lo que debes hacer es modificar tu programa para que sólo haga un input, no varios.

Si inicialmente ingresas el dato con un input, así:

d = input('ingresa dato: ');

y lo manipulas o haces operaciones, así

x = d + y + z;

pues... eso hazlo una sola vez. El dato ya lo tienes en d. No vuelvas a usar un input, sino que usa tu dato como gustes. No existe un comando en Matlab que te haga la modificación a tu programa. Esa modificación la tienes que hacer tú manualmente, donde convenga en tu código.

O sea, si necesitas hacer otra operación con el dato d, pues quita el input para que use d.

a = d + x + 2*pi

en lugar de

d = input('ingresa dato: ');
a = d + x + 2*pi

Es lo único que se me ocurre, con lo que estoy entendiendo.
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