Matlab - Comparar Matrices

   
Vista:

Comparar Matrices

Publicado por Tommy tommy_valv@hotmail.com (9 intervenciones) el 05/10/2012 17:31:25
Hola amigos del foro mi pregunta es como puedo hacer para comparar dos matrices fila por fila??

Ejemplo tengo las dos matrices A y B:

A=[12 45;34 67; 23 67;124 95]

A =

12 45
34 67
23 67
45 86

>> B=[34 65;75 87;34 69;45 86]

B =

34 65
34 67
34 69
45 86

Quiero que compare si los valores de la primera fila A con los valores de la primera fila B son iguales, la segunda fila de la matriz A con la segunda fila de la matriz B y asi que compare todas las filas..y al final me muestre el porcentaje de coincidencias entre las dos matrices espero se pueda hacer esto.

Espero me puedan ayudar ya que recien estoy iniciandome en la programacion en matlab 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

Comparar Matrices

Publicado por Jorge (3 intervenciones) el 14/10/2012 19:37:05
Hola, lo que pides es algo sencillo, si aun te sirve las respuesta.

>> A=[12 45;34 67; 23 67;124 95];

A =

12 45
34 67
23 67
124 95

>> B=[34 65;75 87;34 69;124 95]

B =

34 65
75 87
34 69
124 95

Para comparar las dos matrices solo debes usar '==' obviamente compara elemento a elemento, y te dará: 1 si es verdadero o 0 si es falso

entonces:

Asignas la matriz de unos y ceros a otra variable.

c=[A==B]

c =

0 0
0 0
0 0
1 1

Luego sumas esto >> sum(sum(c)) y te dara el numero de elementos que son iguales.

Luego para hallar el porcentaje, debes saber cuantos elementos tienen las matrices comparadas, esto es sencillo.

[filas,columnas]=size(A)

f =

4

c =

2

Y multiplicar f*c y sacar porcentajes:

Coincidencia= (sum(sum(c))/f*c)*100


Esto debes implementarlo con un input para ingresar las matrices, un if que compare si el numero de filas y columnas de las matrices a comparar sean iguales, de lo contrario imprimir un mensaje de error con un disp(' '), etc


Saludos
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

Comparar Matrices

Publicado por Tommy tommy_valv@hotmail.com (9 intervenciones) el 16/10/2012 02:40:36
Muchas gracias Jorge por tu ayuda ya logre solucionar este problemita, ahora tengo otro espero me puedas ayudar veras estoy haciendo la carga de varios archivos (.dat ) y quiero que los datos que contienen estos archivos se me guarden en una variable temporal pero me sale un error y no se como solucionarlo a continuación pongo el código para explicarme mejor :

listar=dir('C:\Users\usuario\Documents\MATLAB\Datos\*.dat');
n=length(listar);

for i=1:n
nombre=[listar(i,1).name];
datos=importdata(nombre,' ',4); %Importando los datos de cada archivo
temp=datos(i).data %Se guarda los datos en una variable temporal
end
disp(temp)


Al correr el programa me sale el siguiente error y no se como solucionarlo:

Index exceeds matrix dimensions.

Error in ==> Cargar_Datos>abrir_Callback at 361
temp=datos(i).data %Se guarda los datos en una variable temporal

Nota: los archivos .dat contienen dos columnas con n numero de filas cada uno sera talvez por esto que no me funciona??

Espero me puedas dar una manito 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