Matlab - Creación nueva matriz a partir de bucle for

 
Vista:
sin imagen de perfil

Creación nueva matriz a partir de bucle for

Publicado por Pablo (1 intervención) el 31/12/2013 01:16:55
Buenas, soy nuevo en el foro. Me llamo Pablo y estudio 1º de Ingeniería Química, y acudo aquí ya desesperado con un detalle en Matlab que llevo varios días intentando resolver sin éxito. He visitado el foro varias veces, y muchas de ellas me ha sido muy útil, pero no he encontrado solución para la que se me plantea. Veréis, tengo una matriz de 56 filas x 13 columnas que contiene información, y lo que quiero es que, a partir del valor de una variable "p" se analice el valor de una columna en concreto para cada fila, y que si ese valor es menor que el valor de dicha variable, se "construya" otra matriz con la fila entera de la columna cuyo valor en dicha fila es menor que el de la variable "p", y que así lo vaya haciendo sucesivamente para todos los valores de las demás filas cuyo valor de esa columna en concreto sea menor que "p". Sería de esta forma:


p=input('Introduzca un valor: ');

k=0;
for i=1:56
if C(i,13)<p
k=k+1;
C(k,:)=C(i,:)
end
end
end

El problema es que me crea muchísimas matrices, e incluso incluyen valores fuera de las restricciones del if.

No me importaría que se modificase la matriz original, o que se creara una nueva.

Podríais echarme una mano?? Perdón por el tocho y muchas gracias de antemano.
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

Creación nueva matriz a partir de bucle for

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 31/12/2013 01:43:43
Un ejemplo concreto para una matriz mas pequeña como seria. Ejemplo concreto quiere decir que resuelvas en forma manual una matriz pequeña tu pregunta.
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

Creación nueva matriz a partir de bucle for

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 31/12/2013 02:34:08
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
>> sub_matrices
 
C =
 
     4    14    11     9     9
     8    13     3     4    19
     5    13    18    10    19
    19     3    20     4    15
     9     7    18    15    15
     7    19     4     7    13
     0    11     0     5     9
     2     3    19     8    10
 
 
columna =
 
     4
 
 
p =
 
    18
 
 
A =
 
     {}
 
 
M =
 
     4    14    11     9     9
     8    13     3     4    19
     5    13    18    10    19
    19     3    20     4    15
     9     7    18    15    15
     7    19     4     7    13
     0    11     0     5     9
     2     3    19     8    10
 
  Name      Size            Bytes  Class     Attributes
 
  C         8x5               320  double
  M         8x5               320  double
 
>> sub_matrices
 
C =
 
     4     0     9    10     2
    19     8     5     0    20
     5     6    10     8     6
     4     6    10    18     5
    15     7     5     9     5
     5     6    16    18    16
    12    14    17    19    16
     4    13     5     2     6
 
 
columna =
 
     5
 
 
p =
 
    15
 
 
A =
 
    'no toma la fila 2 de la matriz C pues 20 es mayor que p=15'
    'no toma la fila 6 de la matriz C pues 16 es mayor que p=15'
    'no toma la fila 7 de la matriz C pues 16 es mayor que p=15'
 
 
M =
 
     4     0     9    10     2
     5     6    10     8     6
     4     6    10    18     5
    15     7     5     9     5
     4    13     5     2     6
 
  Name      Size            Bytes  Class     Attributes
 
  C         8x5               320  double
  M         5x5               200  double
 
>> sub_matrices
 
C =
 
    17     6     8    13     6
     8    14     3    16    18
     2     8    15    18    20
    17    14     3     5    14
    14    16    19     8    11
     1     8    17     3     3
    17    17     5     3    16
     1    11     2    11     9
 
 
columna =
 
     5
 
 
p =
 
     9
 
 
A =
 
    'no toma la fila 2 de la matriz C pues 18 es mayor que p=9'
    'no toma la fila 3 de la matriz C pues 20 es mayor que p=9'
    'no toma la fila 4 de la matriz C pues 14 es mayor que p=9'
    'no toma la fila 5 de la matriz C pues 11 es mayor que p=9'
    'no toma la fila 7 de la matriz C pues 16 es mayor que p=9'
    'no toma la fila 8 de la matriz C pues 9 es igual que p=9'
 
 
M =
 
    17     6     8    13     6
     1     8    17     3     3
 
  Name      Size            Bytes  Class     Attributes
 
  C         8x5               320  double
  M         2x5                80  double



Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
[email protected]


http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
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