Matlab - Ingreso de datos adicionales en excel

 
Vista:
sin imagen de perfil
Val: 66
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Ingreso de datos adicionales en excel

Publicado por Deyner (28 intervenciones) el 14/11/2016 07:19:56
Buenas estimados amigos
Quisiera hacer una consulta sobre un programa que estoy realizando, tengo inconvenientes con uno de los subprogramas, para explicarlo un poco se abre un menú en donde la persona puede crear un nuevo usuario, buscar un usuario,...,mi primera duda es como podría hacer en la parte de usuario nuevo para que cuando se cree el archivo excel y elija ingresar nuevo usuario se coloque a continuación del ultimo usuario ingresado en el archivo excel. La otra duda es sobre la opción de búsqueda como podria hacer que filtre entre los valores de texto teniendo varios de entrada es decir de no se por ejm 10 usuarios que tenga si ingreso datos como el nombre y apellido busque en todas las filas y si coinciden seguir el sgte paso que seria mostrar toda la fila, pero además quisiera saber si es posible si digamos solo el nombre muestre todas las coincidencias.
Gracias de ante mano.

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
%Programa para el adm del cajero automatico
%Creación del archivo de datos iniciales en excel
titulo={'Usuario','Nombre1','Nombre2','Apellido1','Apellido2','Documento',...
    'Tarjeta','Clave','Saldo','Estado'};%Usuario va desde 1 hasta n usuarios
xlswrite('cajero_datos.xlsx',titulo,'Hoja1','A1');
%Mostrar menú principal para el adminsitrador
opcion1=menu('OPCIONES DE ADMINISTRACIÓN:',...
    'NUEVO USUARIO','BUSCAR USUARIO','SALIR');
switch opcion1
    case 1
    %Ingreso de nuevo usuario
        d0=input('Número de usuario: ');
        d1=input('Primer nombre: ','s');
        d2=input('Se gundo nombre: ','s');
        d3=input('Primer apellido: ','s');
        d4=input('Segundo apellido: ','s');
        d5=input('Número de documento: ');
        d6=input('Número de tarjeta: ');
        d7=input('Clave de usuario: ');
        d8=input('Saldo inicial: ');
        d9=input('Estado: ');%(1)activo (0)bloqueado
    %Bloques de error para entrada de datos
    if length(d5)~=8
        error('Número de documento debe contener 8 dígitos');
    end
    if length(d7)~=4
        error('Clave de usuario debe ser de 4 dígitos');
    end
    if (d9~=0)||(d9~=1)
        error('Valor de entrada inválido debe ser 0 o 1');
    end
    %Llenando en el archivo excel
    celda0='A';celda=[celda0,num2str(d0+1)];
    cel1={d0,d1,d2,d3,d4,d5,d6,d7,d8,d9};
    xlswrite('cajero_datos.xlsx',cel1,'Hoja1',celda);
    case 2
    %Búsqueda de datos de usuario
    opcion2=input('Desea acceder a la base de datos? si/no: ','s');
    switch opcion2
        case 'si'
        opcion3=input('Desea acceder directamente al archivo? si/no: ','s');
            switch opcion3
                case 'si'
                %Abrir en la ventana del editor el archivo con los datos
                open('cajero_datos.xlsx');
                case 'no'
                %Buscar el usuario por nombre
                [num,txt]=xlsread('cajero_datos.xlsx');
                txt(1,:)=[];%excluye los titulos
                nomb=input('Ingrese el primer nombre: ','s');
                apell=input('Ingrese el primer apellido: ','s');
                *****aquí es el principal inconveniente******
            end
        case 'no'
        opcion4=input('Desea realizar alguna otra operación? si/no','s');
            switch opcion4
                case 'si'
                %Volver al menu principal
                cajero_pr1;
                case 'no'
                %Salir del programa
                clc;disp(' Finalizando programa');pause(2);clc;
                disp(' .');pause(0.5);clc;
                disp(' ..');pause(0.5);clc;
                disp(' ...');pause(0.5);clc;
                disp(' .');pause(0.5);clc;
                disp(' ..');pause(0.5);clc;
                disp(' ...');pause(0.5);clc;
                disp(' Gracias');pause(2);clc;
                return;
            end
    end
    case 3
    %Salir del programa
        clc;disp(' Finalizando programa');pause(2);clc;
        disp(' .');pause(0.5);clc;
        disp(' ..');pause(0.5);clc;
        disp(' ...');pause(0.5);clc;
        disp(' .');pause(0.5);clc;
        disp(' ..');pause(0.5);clc;
        disp(' ...');pause(0.5);clc;
        disp(' Gracias');pause(2);clc;
        return;
end
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
sin imagen de perfil
Val: 66
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Ingreso de datos adicionales en excel

Publicado por Deyner (28 intervenciones) el 14/11/2016 07:52:18
Adicionalmente
Si fuera posible como se podría hacer si en uno de los subprograma requiero ingresar un usuario, luego una contraseña y se debe comprobar si la contraseña corresponde al usuario...
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 Royeth
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Ingreso de datos adicionales en excel

Publicado por Royeth (1818 intervenciones) el 14/11/2016 18:22:22
Te recomiendo que en vez de utilizar como base de datos excel , utilices la base de datos de Matlab que es la que guarda las variables como .mat así no tienes que estar exportando e importando datos y puedes agregar , editar , eliminar datos muy fácilmente e incluso encriptar :

por ejemplo usuarios={'María' 'Rosa' 'etc'};

yo la guardo como save('basededatos','usuarios')

y cuando quiera cargar la base de datos , ingreso load basededatos

y ya me recupera la variable usuarios y la puedo usar para agregar otro usuario por ejemplo :
usuarios{end+1}='otro usuario'

para hacer búsquedas de coincidencia investiga el comando strcmp , por ejemplo strcmp(usuarios,'Rosa') te devuelve 1 donde coincida

y para usuario contraseña por ejemplo si tenemos de base de datos :

1
2
3
4
5
6
7
8
datos={'María' 'Rosa' 'etc'; '1234' '5678' '9101'};
user='Rosa';
pass='5678';
if strcmp(datos(strcmp(datos(1,:),user),2),pass)
disp('contraseña correcta')
else
disp('contraseña incorrecta')
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
sin imagen de perfil
Val: 66
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Ingreso de datos adicionales en excel

Publicado por Deyner (28 intervenciones) el 15/11/2016 02:08:47
Gracias estaré justamente pensaba en usar la función strcmp, pero se no logro entender como haría para 'ligar' columnas por ejm si busco coincidencias con strcmp puede que el nombre coincida con muchos, pero con apellidos y tratar de asimejarse un poco al filtrado de excel es lo que trataba de buscar
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 Royeth
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Ingreso de datos adicionales en excel

Publicado por Royeth (1818 intervenciones) el 15/11/2016 05:22:39
Deyner todo es con strcmp si quiere 'ligar' nombre y apellido lo que tiene que hacer es un and , que el nombre y el apellido

1
2
3
4
a={'rosa' 'camila' 'camila'; 'ramirez' 'mendoza'  'villa'; 18 19 20};
nombre='camila';
apellido='mendoza';
edad=a(3,and(strcmp(a(1,:),nombre),strcmp(a(2,:),apellido)))


como puedes ver hay dos camilas pero hay un and que filtra por nombre y apellido
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
sin imagen de perfil
Val: 66
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Ingreso de datos adicionales en excel

Publicado por Deyner (28 intervenciones) el 15/11/2016 06:46:38
Claro tenias razón me había olvidado completamente usarlo así con funciones lógicas y eso que las use en otras partes del código XD, muchas gracias amigo por tu tiempo
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