Matlab - Introducir números en Edit Text

 
Vista:

Introducir números en Edit Text

Publicado por jDL (58 intervenciones) el 06/02/2012 21:12:05
Tengo un edit text en el que quiero introducir 4 números, me gustaría visualizar en un static text los tres primeros dígitos y en otro static text el último dígito. He intentado hacer esto pero no me funciona:
Valor=get(hObject,’String’) % Obtengo el valor del edit text
Numero=num2str(Valor);
Set(handles.text1, ‘String’,Numero(1:3);
Set(handles.text2,’String’,Numero(4));

Una dudilla, me gustaría que sólo se pudiesen introducir números de cuatro cifras, ¿existe alguna propiedad que me permita limitar el número de caracteres en el String de un Edit Text?

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 JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Introducir números en Edit Text

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 06/02/2012 22:28:27
HOla Pepe, jDL, Holyo.
Seria bueno q tu seudonomino fuera unico.
De es manera uno puedo saber el nivel de conocimientos que tienes acerca de matlab y pueda responderte segun tu nivel.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
function varargout = leer_numero(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @leer_numero_OpeningFcn, ...
                   'gui_OutputFcn',  @leer_numero_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end
 
if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
 
function leer_numero_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
 
function varargout = leer_numero_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
 
function edit1_Callback(hObject, eventdata, handles)
Numero=get(hObject,'String');
set(handles.text1, 'String',Numero(1:3));
set(handles.text2,'String',Numero(4));
 
function edit1_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end



Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Profesor de Metodos Numericos con Matlab
Programador en Matlab
"Detalladar sus preguntas, para recibir respuestas acertadas"
[email protected]
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

Introducir números en Edit Text

Publicado por holyo (58 intervenciones) el 07/02/2012 00:48:04
Hola Jose Jeremías, muchas gracias por haber respondido a mi duda. La verdad es que tengo varios nombres de usuario, a partir de ahora utilizaré sólo uno.

Quería hacer lo de limitar el número de cifras que se introducen en el EDIT TEXT, se me ocurre contar el número de dígitos que se introducen (que no sé cómo se hace o si existe un comando que cuente los dígitos) y con un If, Si el número de dígitos es mayor que cuatro, obligaría a que saliese un mensaje de error.

Otra duda que me ha entrado, si yo quiero que sólo metan números, ¿cómo puedo detectar y avisar de que se han equivocado si se introducen letras? es decir ¿cómo se sabe si se introducen letras o números?

Un saludo y gracias.
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 JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Introducir números en Edit Text

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 07/02/2012 03:30:36
hola Holyo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
function varargout = leer_numero_cadena(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @leer_numero_cadena_OpeningFcn, ...
                   'gui_OutputFcn',  @leer_numero_cadena_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end
 
if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
 
function leer_numero_cadena_OpeningFcn(hObject, ~, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
 
function varargout = leer_numero_cadena_OutputFcn(~, ~, handles)
varargout{1} = handles.output;
 
function edit1_Callback(hObject, ~, handles) %#ok<DEFNU>
while 1
    Numero=get(hObject,'String');
    if isnan(str2double(Numero))==0
        if  length(Numero)==4
            set(handles.text1, 'String',Numero(1:3));
            set(handles.text2,'String',Numero(4));
            break;
        else
            set(handles.text1, 'String','No valido');
            set(handles.text2,'String',' ');
            break;
        end
    else
          set(handles.text1, 'String','No es numero');
           set(handles.text2,'String',' ');
            break;
 
    end
end



Saludos.
JOSE JEREMIAS CABALLERO
Servicios de programacion matlab
Asesor de Proyectos con Matlab
programador en matlab
"Detalladar sus preguntas, para recibir respuestas acertadas"
[email protected]
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

Introducir números en Edit Text

Publicado por holyo (58 intervenciones) el 10/02/2012 03:12:37
Hola José, te quería preguntar una cosilla. En el caso que te he preguntado, resulta que las cifras Numero(1:3) y Numero(4) las quiero almenar con dos nombres a y b porque luego las voy a necesitar.

Escribo:
a=Numero(1:3);
b=Numero(4);

Me señala matlab que a,b---> THE VALUE ASSIGNED TO VALUE A/B MIGHT BE UNUSUED.

¿Por qué ocurre? Por cierto, si después quiero usar las variables a,b, tendré que guardarlas o al darles el nombre a,b se quedan guardadas?
Un saludo.
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 JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Introducir números en Edit Text

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 10/02/2012 03:25:21
hola Holyo.
Solamente te esta diciendo, que haz creado variables a y b, pero no lo estas usando.
pero esas variables ya estan en la memoria de matlab en el momento que se ejecutando el codigo en mencion.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
function varargout = leer_numero_cadena(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @leer_numero_cadena_OpeningFcn, ...
                   'gui_OutputFcn',  @leer_numero_cadena_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end
 
if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
 
function leer_numero_cadena_OpeningFcn(hObject, ~, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
 
function varargout = leer_numero_cadena_OutputFcn(~, ~, handles)
varargout{1} = handles.output;
 
function edit1_Callback(hObject, ~, handles) %#ok<DEFNU>
while 1
    Numero=get(hObject,'String');
    if isnan(str2double(Numero))==0
        if  length(Numero)==4
            a=Numero(1:3); %#ok<NASGU>
            b=Numero(4); %#ok<NASGU>
            set(handles.text1, 'String',Numero(1:3));
            set(handles.text2,'String',Numero(4));
            break;
        else
            set(handles.text1, 'String','No valido');
            set(handles.text2,'String',' ');
            break;
        end
    else
          set(handles.text1, 'String','No es numero');
           set(handles.text2,'String',' ');
            break;
 
    end
end


Saludos.
JOSE JEREMIAS CABALLERO

Servicios de programacion matlab


Asesor de Proyectos con Matlab
programador en matlab
"Detalladar sus preguntas, para recibir respuestas acertadas"
[email protected]
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

Introducir números en Edit Text

Publicado por holyo (58 intervenciones) el 10/02/2012 12:17:06
Hola Jose, ¿en lo que tú has escrito no te aparece lo que yo te he dicho? Lo de:
THE VALUE ASSIGNED TO VALUE A/B MIGHT BE UNUSUED.
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 JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Introducir números en Edit Text

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 10/02/2012 13:25:39
Hola.
No te hagas problema.
Ese mensaje no influye en nada en tu codigo.
Tu código va a funcionar normal.
Para mayor informacion, si deseas concectate via messenger de hotmail,opcion de audio.


Saludos.
JOSE JEREMIAS CABALLERO

Servicios de programacion matlab


Asesor de Proyectos con Matlab
programador en matlab
"Detalladar sus preguntas, para recibir respuestas acertadas"
[email protected]
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

Introducir números en Edit Text

Publicado por lirica (6 intervenciones) el 27/05/2013 16:18:29
Hola Jose Jeremías, este hilo está relacionado con mi duda, pero no he sabido dar solución al problema.

Estoy intentando controlar que el valor introducido por el usuario en dos cuadros "edit text" sean valores numéricos.
La parte de código correspondiente es la que te pongo a continuación y si en el string del edit3 o del edit4 existen valores alfanumérico no salta el mensaje de error. ¿Cómo puedo solucionarlo?

% Extraer los valores de T y S introduccidos por el usuario
T_intro = get(handles.edit3,'String') % Valor de T introducido por el usuario
S_intro = get(handles.edit4,'String') % Valor de S introducido por el usuario

% Comprobar que se ha introducido un valor numérico de T comprendido entre 0-360º
if isnan (str2double(T_intro)) == 0
warndlg({'Se debe introducir un valor numérico de T','comprendido entre 0 y 360º'},'APP');

% Comprobar que se ha introducido un valor numérico de S comprendido entre 0-100%
elseif isnan (str2double (S_intro)) == 0
warndlg({'Se debe introducir un valor numérico de S','comprendido entre 0 y 100%'},'APP');

% Si son valores numéricos: Operar
else
T1 = T/360; % T de 0 a 1
S1 = S/100; % S de 0 a 1
end
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 JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Introducir números en Edit Text

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 27/05/2013 18:02:36
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
>> clear all; a='123fgf'; if ~isnan(str2double(a));'numero',else 'no numero', end
 
ans =
 
no numero
 
>> clear all; a='123'; if ~isnan(str2double(a));'numero',else 'no numero', end
 
ans =
 
numero
 
 
>> clear all; a='abc'; if ~isnan(str2double(a));'numero',else 'no numero', end
 
ans =
 
no numero




Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
[email protected]

http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
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

Introducir números en Edit Text

Publicado por Peter (1 intervención) el 03/10/2013 13:33:13
Buenas:

Se que este mensaje es antiguo pero estoy trabajando en algo muy parecido y he encontrado la solución en este post, pero tengo un problema, quiero añadir además de poder restringir la entrada de datos numéricos o letras que también, si es el caso de que sea numérico pueda restringir si es positivo o negativo. Lo he intentado hacer con un bucle IF pero no me ha sido posible,
¿Qué puedo hacer?
Espero que puedan resolver mi duda :)
Muchas gracias.
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

Introducir números en Edit Text

Publicado por Cristina H (1 intervención) el 15/11/2014 21:47:25
Hola Jose.
Tengo una pregunta asociada con el Edit Text, quisiera saber como puedo guardar lo que el usuario ingresa y luego de que ingrese otra cosa no se borre lo anterior, para finalmente tener todos los datos ingresados en un vector o algo así.
Gracias por tu atención.
Cristina.
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