Matlab - Crear matriz a partir de otra con condicionantes

 
Vista:
Imágen de perfil de Henky

Crear matriz a partir de otra con condicionantes

Publicado por Henky (3 intervenciones) el 25/03/2017 17:16:58
Hola a todos, he intentado buscar info previamente a mi problema sin encontrar solución,
La situación es la siguiente:
Tengo una matriz "A" de 6000x500 double.
A partir de esa matriz quiero crear varias matrices con el condicionante:
Una matriz "B" que solo tenga las filas de la matriz "A" cuya columna número 1 tengo el número "5", por ejemplo.
Un saludo.
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 JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Crear matriz a partir de otra con condicionantes

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 25/03/2017 17:34:28
1
2
3
4
5
6
7
8
9
10
clear all
k=1;
A=round(7*rand(20,5))
for i=1:size(A,1)
    if A(i,1)==5
        B(k,:)=A(i,:);
        k=k+1;
    end
end
B

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
>> matriz_con_condicionante
A =
     4     7     3     4     6
     2     5     2     1     4
     3     4     3     1     4
     5     5     3     3     5
     7     6     7     2     3
     3     4     2     3     5
     1     3     2     4     5
     2     4     1     7     1
     4     5     1     4     6
     1     6     4     6     5
     4     2     4     6     3
     0     3     3     7     1
     1     7     4     6     3
     5     0     3     0     7
     2     4     6     7     7
     4     6     2     1     5
     2     0     5     2     6
     7     1     1     1     2
     6     6     6     5     3
     5     7     5     5     1
B =
     5     5     3     3     5
     5     0     3     0     7
     5     7     5     5     1

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


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero/
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
Imágen de perfil de Henky

Crear matriz a partir de otra con condicionantes

Publicado por Henky (3 intervenciones) el 25/03/2017 20:21:42
Ok, gracias por la rápida respuesta.
y mi siguiente duda,
si ahora una vez que tengo la manera de hacerlo, quisiera hacer muchas matrices nuevas a partir de ese "algoritmo",
como se haría?
es decir, para no estar creando matrices de una en una pues tengo que diferenciar bastantes.
Por ejemplo:
Quiero crear Matriz1 para los valores 1 de la columna 1,
Matriz2 para los valores 2 de la columna 1,
Matriz 3 para los valores 3 de la columna 1
Asi sucesivamente.
Muchas Gracias, un saludo.
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
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

Crear matriz a partir de otra con condicionantes

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 26/03/2017 14:35:09
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
clear all
A=round(24*rand(20,5))
for j=1:size(A,1)
 k=1;
 Matriz=[];
   v=genvarname(['Matriz',num2str(j)])    ;
for i=1:size(A,1)
    if A(i,1)==j
        Matriz(k,:)=A(i,:);
        k=k+1;
    end
end
if sum(size(Matriz))~=0
eval([v,'=Matriz'])
end
end

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
>> genvarname17
A =
    12    23     6    19    20
     1     6     9    10    12
     6    23     6     7     0
     3    12     5     8    22
     2    14    15     9    10
    21    24    19    19    18
     1    19     5     1     4
    20     8    22    17    20
    12     1    18    21    22
     3     1    13     7    19
    12    20    23    16    18
    14    10    14     6    10
     2     9     5    15    17
    23    13    21     2    14
    16    21    21    23    14
    11    10     8    15     8
    21    15     8     9    17
     6     2    20     1     4
    20     8    12    21     0
     8     3     1    14    13
Matriz1 =
     1     6     9    10    12
     1    19     5     1     4
Matriz2 =
     2    14    15     9    10
     2     9     5    15    17
Matriz3 =
     3    12     5     8    22
     3     1    13     7    19
Matriz6 =
     6    23     6     7     0
     6     2    20     1     4
Matriz8 =
     8     3     1    14    13
Matriz11 =
    11    10     8    15     8
Matriz12 =
    12    23     6    19    20
    12     1    18    21    22
    12    20    23    16    18
Matriz14 =
    14    10    14     6    10
Matriz16 =
    16    21    21    23    14
Matriz20 =
    20     8    22    17    20
    20     8    12    21     0

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


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero/
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