Matlab - SOBRE CARGAR DATOS CON "load" y bucles con datos "string"

 
Vista:

SOBRE CARGAR DATOS CON "load" y bucles con datos "string"

Publicado por FRANKLIN JAVIER (1 intervención) el 18/07/2012 18:48:30
Me llamo Franklin Javier. Soy venezolano y principiante en Matlab. Te escribo para pedir tu ayuda con dos problemas que no le encuentro solución; espero puedas ayudarme:
1.- tengo una archivo de entrada en formato *.txt. Intente usar A=load('data.txt') pero no me reconoce la primera fila y genera un error.
“??? Error using ==> load
Unknown text on line number 1 of ASCII file C:\Documents and Settings\FRANKLIN\Mis documentos\MATLAB\data.txt
"sta_01".”

¿Cómo pudiese resolver este error?
2.- Desarrollé un script (bastante modesto) para comparar los elementos de cada columna (variables) con los elementos de las demás columnas (otras variables). Asumo que dos variables son iguales si existe una coincidencia mayor del 75%. Todo va bien, pero me sale este error
“??? Subscripted assignment dimension mismatch.
Error in ==> Regionalizador at 27
H(1,k-1)=A{1,1};”

Creo que tiene que ver con el hecho de que esa celda tiene un “string” y no lo puede asignar al elemento del vector H…pero no sé cómo resolverlo

Gracias de antemano…

CONTENIDO DE data.txt

sta_01 sta_02 sta_03 sta_04 sta_05 sta_06
0 99 99 1 1 0
-1 -1 1 1 1 1
0 0 0 0 1 0
0 1 -1 1 1 1
1 0 0 1 -1 -1
0 1 -1 1 0 0
-1 -1 1 -1 1 1
0 1 -1 1 1 -1
-1 -1 -1 0 -1 0
-1 1 1 1 -1 0
-1 1 0 0 99 99
1 -1 0 0 -1 0
1 0 0 1 0 0
0 -1 -1 0 0 -1
-1 0 0 -1 0 0
0 1 -1 -1 0 0
-1 -1 -1 1 -1 -1
1 1 0 -1 0 0
0 99 99 0 1 -1

CONTENIDO DE ARCHIVO *.m

clc;%limpia la pantalla
[m,n]=size(A);%determina el tamaño de la matriz
L=m;W=n;%asignación a variables
NA = 75;%porcentaje de similitud entre dos señales
i=0;j=0;c1=0;c2=0;ac=0;p=0;u=0;k=0;%pone a ceros todas las variables incluidas en los bucles
for k=2:W+1
for i=1:W-1
for j=1:L-1
if A{j+1,1}==99
continue
elseif A{j+1,i+1}==99
continue
elseif A{j+1,1}==A{j+1,i+1}
c1=1+c1;
else A{j+1,1}~=A{j+1,i+1}
c2=c2+1;
end
end
ac=(c1/(c1+c2))*100;
if ac>NA
H(i+1,k-1)=A(1,i+1);
else
H(i+1,k-1)=0;
end
c1=0;c2=0;
end
H(1,k-1)=A{1,1};
d=A{:, 1};
if k<=W
c=A{:, k};
else
continue
end
for u=1:L
A{u,1}=c(u,1);A{u,k}=d(u,1);
end
end
t=0;v=0;
for t=1:W
for v=1:W
G(v,t)=H(v,t);
end
end
G%matriz de salida
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