Matlab - Extraer datos de Matiz y Reordenar

   
Vista:

Extraer datos de Matiz y Reordenar

Publicado por Eric (2 intervenciones) el 24/06/2017 02:05:58
Hola amigos,

Soy estudiante y estoy dando mis primeros pasos en Matlab, primero me gustaría felicitaros por ser miembros activos en este foro, excelente por cierto.

Paso a lo siguiente: Tengo un archivo ASCII de 12000 filas y 4 columnas, las tres primeras columnas corresponden a coordenadas X, Y y Z, y la cuarta a cierta variable (Espesor). Son datos topográficos principalmente. Extracto:

Coorx y z Esp
458120 2302010 2196 1069.91
458123 2302010 2196 1073.14
458125 2302010 2196 920.12
458120 2302020 2198 799.615
458123 2302020 2198 116.591
458125 2302020 2198 739.314
458120 2302010 2198 1000.91
458123 2302010 2198 73.1
458125 2302010 2198 20.12
458120 2302020 2200 799.6
458123 2302020 2200 115.41
458125 2302020 2200 39.314
458120 2302010 2200 1091.0
458123 2302010 2200 10.1
458125 2302010 2200 1200.1
...
...
...
CoorXn CoorYn CoorZn EspN



Como podrán notar las coordenadas varían:
x=458120 a 458125
y=2302010 a 2302020 de 10 en 10
z=2196 a 2200 de 2 en 2

Tengo que ordenar de forma similar a una transpuesta de la matriz, donde quede ordenado de la siguiente manera:

CoorX CoorY Esp1(z1) Esp2(z2) Esp3(z3) ... EspN(zN)

458120 2302010 1069.91 1000.91 1091.0 ...
458120 2302020 ---------- 799.615 799.6 ...
458123 2302010 1073.14 73.1 10.1 ...
458123 2302020 116.59 115.41 ---------- ...
458125 2302010 920.12 20.12 1200.1 ...
458125 2302020 ---------- 739.314 39.314 ...


Como podrán notar del listado se mantiene X y varia Y, y se reordenan en fila los valores de ESP en función de Z.

Solicito muy atentamente su apoyo por favor estoy leyendo tutoriales y el tiempo apremia y no resuelvo gran cosa :(
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

Extraer datos de Matiz y Reordenar

Publicado por bidi (9 intervenciones) el 26/06/2017 13:19:04
Suponiendo que tu matriz inicial sea A, zN sea el numero de repeticiones que tienes para un mismo espacio, creo que seria algo asi.


1
2
3
4
5
6
7
8
9
B = A(:,1:2);
 
[f,c] = size(A);
 
inB = 1;
for cc = 1:  zN  :(f - zN)
    B(inB,end+1) = A(cc:zN,4)' ;
    inB = inB + 1;
end

Aviso, el codigo seguramente este mal, lo he hecho de cabeza y sin problarlo.

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

Extraer datos de Matiz y Reordenar

Publicado por Eric (2 intervenciones) el 27/06/2017 18:28:55
Bidi, muchas gracias por tu aportación y gracias por tu valiosísimo tiempo.

Al respecto podrías ayudarme porfa describiendo las funciones o comandos que usas y de ser posible orientarme sobre como mejorarlo?

Saludos amigos.
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
Revisar política de publicidad