Matlab - Como pedirle al usuario que ingrese números y una letra

   
Vista:

Como pedirle al usuario que ingrese números y una letra

Publicado por Christhofer (7 intervenciones) el 06/03/2015 20:36:01
Me gustaría saber como pedirle a un usuario que ingrese números y una letra "23K", luego tomar ese 23 y multiplicarlo por 1000 y que cuando ingrese solo números "23" no se multiplique por 1000. gracias :)
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 Daniel

Como pedirle al usuario que ingrese números y una letra

Publicado por Daniel (212 intervenciones) el 06/03/2015 21:46:59
esto hace lo que pides

1
2
3
r1=regexprep(input('ingrese el valor de R_1: ','s'),' ','');
r1n=regexprep(r1,'k','000', 'ignorecase' );
disp(str2num(r1n))

el código está hecho para reconocer y no darle importancia a espacios ni a mayusculas o minusculas:

1
2
3
4
5k  ---->5000
5K  ---->5000
5 k ---->5000
5 K ---->5000


Comentanos después como te fue

Saludos

Daniel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Como pedirle al usuario que ingrese números y una letra

Publicado por Christhofer (7 intervenciones) el 07/03/2015 04:00:35
excelente me sirvió perfecto, Amigo muchas gracias!!!
PURA VIDA :)
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

Ayuda MATLAB, soy novato

Publicado por Christhofer (7 intervenciones) el 07/03/2015 04:31:04
Amigo disculpa que te moleste de nuevo, con tu codigo estoy tratando de hacer esto
*******************************************************************
R1=regexprep(input('ingrese el valor de R1: ','s'),' ','');
R1n=regexprep(R1,'k','000', 'ignorecase' );
disp(str2num(R1))

R2=regexprep(input('ingrese el valor de R2:','s'),' ','');
R2n=regexprep(R2,'k','000','ignorecase');
disp(str2num(R2))

R3=regexprep(input('ingrese el valor de R3:','s'),' ','');
R3n=regexprep(R3,'k','000','ignorecase');
disp(str2num(R3))

R4=regexprep(input('ingrese el valor de R4:','s'),' ','');
R4n=regexprep(R4,'k','000','ignorecase');
disp(str2num(R4))

a=regexprep(input('ingrese el valor de alpha:','s'),' ','');
an=regexprep(a,'k','000','ignorecase');
disp(str2num(a))

o=str2num(a)*str2num(R3)*str2num(R4)
p=((str2num(R1)+str2num(R2)))*((str2num(R3)+str2num(R4)))

vovs=o/p
***************************************************************************
Amigo mi problema radica en que si pongo los numeros normales (sin la K) me da el resultado correcto, el problema es cuando pongo un numero con K .... no me funciona ;/ me sale vovs=[]

Necesito que me de la operación si pongo los números normales, y si le pongo K que me realice la operación pero cada numero se multiplique por mil antes de realizar la operación.
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
Imágen de perfil de Daniel

Ayuda MATLAB, soy novato

Publicado por Daniel (212 intervenciones) el 08/03/2015 17:37:56
La idea, que me olvidé de poner antes cuando te respondí es que las variables con la n al final (R1n) eran strings que se podian convertir a numeros mientas que R1 eran strings que no siempre se podian convertir a numeros.



En cada petición de un valor deberías escribir esto:


1
2
3
R1=regexprep(input('ingrese el valor de R1: ','s'),' ','');
R1n=regexprep(R1,'k','000', 'ignorecase' );
R1n=str2num(R1n); % linea agregada: aqui R1n es un numero



Si mas adelante necesitas el valor numérico utiliza R1n (no es necesario ahora poner str2num en las expresiones de o y p )



1
2
3
4
o=an*R3n*R4n;
p=(R1n+R2n)*(R3n+R4n);
 
vovs=o/p

Saludos

Daniel
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

Ayuda MATLAB, soy novato

Publicado por Christhofer (7 intervenciones) el 09/03/2015 02:28:15
Muchisimas gracias, me has salvado :)
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