Matlab - buscar y comparar dato en columna cell array

   
Vista:

buscar y comparar dato en columna cell array

Publicado por douglas d_glasp@hotmail.com (1 intervención) el 17/07/2014 00:57:02
buenas tardes

tengo una base de datos en excel la cual costa de una serie de codigos contenidos en la primela columna que van desde la fila 1 hasta la 518
la cuestión es q necesito mediante un gui importar esa lista de datos, luego introducir un codigo q puede existir en mi lista previamente importada a matlab, realizar la comparación y si los datos son iguales q me realice una accion.

ya pude importar la lista, la cual me crea una cell array de 18x1 q es el siguiente y creo q contiene dos tipos de datos unos son char ( estan entre comillas) y otros double (estan entre corchetes):
'207011-3'
'207011-4'
'207011-5'
'207011-6'
'207027-1'
'207027-2'
'207031-1'
'207031-2'
'207031-3'
'207031-4'
'207031-5'
'207031-6'
'207031-7'
'207031-8'
[620101]
[620100]
[620109]
[630202]
en fin de cuentas he podido compara unos datos con otros pero en ocasiones me sale un error diciendo q las dimensiones de la matrix deben estar de acuerd, esto sucede cuando introduzco un numero q no corresponde con el tamaño q se quiere buscar(eso creo)
aca esta el codigo:

function pushbutton2_Callback(hObject, evdentdata, handles)
[x,y,z]=xlsread('C:\Users\DOUGLAS PC\Desktop\Aplicacion_Matlab_Pasantia\prueba\LISTADO_DE_ INSTRUMENTOS2.xlsx');
z(:,1)
a=get(handles.buscar,'string')
c(1,1)={(a)}
b(1,1)={str2double(a)}
if z{1,1}==b{1,1}
y=1
elseif z{1,1}==c{1,1}
y=1
else y=0
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

buscar y comparar dato en columna cell array

Publicado por Manuel (9 intervenciones) el 17/07/2014 16:01:04
Si te fijas en tu código al poner de esa manera la función xlsread, matlab te devuelve 3 variables, en la x te guarda los numeros que tiene formato numerico y en la y los que no, y luego en la z te los mezcla todos. aprovechando esto se me ocurre este código, pruébalo a ver que tal:

function pushbutton2_Callback(hObject, evdentdata, handles)
[x,y,z]=xlsread('C:\Users\DOUGLAS PC\Desktop\Aplicacion_Matlab_Pasantia\prueba\LISTADO_DE_ INSTRUMENTOS2.xlsx');

a=get(handles.buscar,'string')

comparapalabra=strcmp(y,a);
comparapalabra=sum(comparapalabra);
if comparapalabra~=0
yy=1;
else
a=str2num(a);
comparanumero=find(x==a);
if ~isempty(comparanumero)
yy=1;
else
yy=0;
end

end

PD: he puesto yy, porque la variable y ya la tenemos declarada arriba.

Espero que te ayude
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