Matlab - Generar matriz a partir de 3 vectores de datos distintos

 
Vista:
sin imagen de perfil

Generar matriz a partir de 3 vectores de datos distintos

Publicado por Paola (5 intervenciones) el 26/01/2017 16:26:58
Hola
No soy muy diestra en Matlab, necesito un algoritmo para organizar los datos de la tabla en una matriz

Los datos son los que aparecen en la imagen 'tabla.jpg'.

De forma que resulte una matriz como la de la imagen 'matriz.jpg'

No sé si es claro lo que necesito.

muchas gracias.

tabla
matriz
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
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

Generar matriz a partir de 3 vectores de datos distintos

Publicado por Royeth (1818 intervenciones) el 26/01/2017 18:04:48
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
a=[1 1984 10; 1 1999 13; 1 2000 25; 1 2005 48; 2 1984 65; 2 2000 15 ; 2 2005 12; 3 1984 47; 3 2005 57; 4 1984 59; 4 1999 54; 5 2000 30];
b=unique(a(:,1));
c=unique(a(:,2));
matriz=nan(length(b)+1,length(c)+1);
for k=1:length(b)
    for j=1:length(c)
        s=find(and(a(:,1)==b(k),a(:,2)==c(j)),1,'first');
        if ~isempty(s)
        matriz(k+1,j+1)=a(s,3);
        end
    end
end
matriz(2:end,1)=b;
matriz(1,2:end)=c;
disp(matriz)

saludos
https://www.facebook.com/royethmatlab/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Generar matriz a partir de 3 vectores de datos distintos

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 26/01/2017 18:29:13
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
clear all
A=[1	1984	10
1	1999	13
1	2000	25
1	2005	48
2	1984	65
2	2000	15
2	2005	12
3	1984	47
3	2005	57
4	1984	59
4	1999	54
5	2000	30]
k=1;
n=1;
v=unique(A(:,2));
for i=1:length(unique(A(:,1)));
    for j=1:length(v)
        if v(j)==A(n,2)   &&  i==A(n,1)
            M(k,j)=A(n,3);
            if n<size(A,1)
           n=n+1;
            end
        else
              M(k,j)=NaN;
        end
    end
     k=k+1;
end
M



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
>> generar_matriz_desde_vector
 
A =
 
           1        1984          10
           1        1999          13
           1        2000          25
           1        2005          48
           2        1984          65
           2        2000          15
           2        2005          12
           3        1984          47
           3        2005          57
           4        1984          59
           4        1999          54
           5        2000          30
 
 
M =
 
    10    13    25    48
    65   NaN    15    12
    47   NaN   NaN    57
    59    54   NaN   NaN
   NaN   NaN    30   NaN






Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Generar matriz a partir de 3 vectores de datos distintos

Publicado por Luis (3 intervenciones) el 11/05/2017 08:29:08
Me podría Ayudar con un programa en Matlab que permita ejecutar una matriz con un 0 en el centro, alrededor con unos, luego con dos, con tres y asi sucesivamente.
Ejemplo:
3 3 3 3 3 3 3
3 2 2 2 2 2 3
3 2 1 1 1 2 3
3 2 1 0 1 2 3
3 2 1 1 1 2 3
3 2 2 2 2 2 3
3 3 3 3 3 3 3
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

Generar matriz a partir de 3 vectores de datos distintos

Publicado por Paola (5 intervenciones) el 26/01/2017 18:39:07
Genial!
muchas gracias a ambos, tanto a Jesus Royeth como a Jose Caballero !
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