Programación Específica > Matlab
Entrada De Datos Por Visual De Matlab
AdrianHdez:
Si revisas bien la ayuda de Matlab comprobarás que es así, en la consola entra una matriz de string y luego str2num para que veas lo que ocurre. Los comandos que te permiten el trabajo con numeros son str2double y str2int, etc.
Saludos...
Geo:
No puedes hacer esto:
--- Cita de: "AdrianHdez" ---A =str2num(get(handles.edit26,'String'));
B =str2num(get(handles.edit27,'String'));
C = A*B
set(handles.edit28, 'String',num2str©);
--- Fin de la cita ---
por esto (atención a los mensajes de error, normalmente ahí ves el problema):
--- Cita de: "AdrianHdez" ---??? Error using ==> str2num
Requires string or character array input.
--- Fin de la cita ---
Antes lo había apuntado:
--- Cita de: "Geo" ---luego obtenerlos desde la propiedad 'String', lo que obtienes es una celda, úsala como string y sepárala con strtok, así puedes obtener cada uno de los elementos separados por espacios (u otro caracter).
--- Fin de la cita ---
Lo que intentas hacer, lo puedes conseguir así:
--- Código: Text --- % Obtiene el contenido del cuadro de texto, el resultado es una celda (cell)aCelda = get( handles.txtNumeroA, 'String' );% Es una celda de string con un solo elemento, obtenemos su contenido.aString = aCelda{ 1, 1 };% Ahora si podemos convertirlo a número con str2numaNum = str2num( aString ); % Lo mismo para el segundo númerobCelda = get( handles.txtNumeroB, 'String' );bNum = str2num( bCelda{ 1, 1} ); resultado = aNum * bNum;put( handles.txtResultado, 'String', num2str( resultado ); Como te imaginarás, txtNumeroA, txtNumeroB y txtResultado son cuadros de texto :).
Creo que ya no necesitas lo de obtener una matriz de un sólo cuadro de texto (para eso si usarías strtok), pero por si acaso, el código a continuación haría lo mismo que el anterior pero leyendo los dos números a multiplicar del mismo cuadro de texto separados por un espacio.
--- Código: Text --- textoCelda = get( handles.txtMatriz, 'String' )textoString = textoCelda{ 1,1 } [ s, textoString ] = strtok( textoString )a = str2num( s );[ s, textoString ] = strtok( textoString )b = str2num( s ); set( handles.txtResultado, 'String', num2str( a * b ) );
Suerte.
Navegación
[*] Página Anterior
Ir a la versión completa