Matlab - ayuda

   
Vista:

ayuda

Publicado por Jorge (43 intervenciones) el 30/06/2010 04:12:52
hola amigas y amogos , tengo un problemita espero q me puedan ayudar es el siguiente
tengo la siguiente matriz principal
4 9 45 ........
12 20 25....
5 8 9....
8 47 30
9 78 15
15 98 2
17 15 77
12 36 48
18 34 65
25 59 41

claro q la matriz es mas grande pero para q me entiendan rapido la corte,lo que quiero es almacenar en un vector columna A, solo los valore 4,8,17 y 25de la matriz principal(son miembros de la primera columna)
del mismo modo quiero un vector columna B, solo los valores 9,47,15y 59(serian de la segunda columna de la matriz principal) y asi para las siguientes columnas de la matriz principal
lo q pense mas o menos es:
i=1, suma=0
while i<=10% 10 es el orden de mi ultima fila
suma=suma+i
i=i+3
A=(i,1)%%% se dan cuenta q el orden para i cambia +3
end

%%por favor ayudenme, el problema es q no lo almacena como una nueva matriz
los q quiero es A=(1,1),(4,1),(7,1).....pero q no los sume q guade los valores..gracias
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

RE:ayuda

Publicado por Kike (304 intervenciones) el 30/06/2010 20:57:41
Lo que estás haciendo es asignar a la variable A un solo número, el cual se va reescribiendo en cada iteración. Probemos así:

% Supongamos que la matriz que contiene las tres columnas se llama Matriz y ya se ha creado

[filas, columnas] = size(Matriz) % tamaño de la Matriz

A = [ ] % inicializo la matriz A
B = [ ] % inicializo la matriz B

i=1; %contador
while filas>i % filas es el orden de mi ultima fila de la Matriz
A(end+1) = Matriz(i,1);% agrego un número a la matriz A
B(end+1) = Matriz(i,2);% agrego un número a la matriz B
i=i+3; % incremento el contador
end

% Presento los resultados
A
B
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

RE:ayuda

Publicado por Kike (304 intervenciones) el 30/06/2010 21:03:24
Otra solución:

A = Matriz(1:3:end, 1)
B = Matriz(1:3:end, 2)

Con esto digo que quiero que A contenga los valores de la primera columna de Matriz y que las filas van desde la primera haciendo saltos de tres en tres hasta la última, y con esto evitamos un bucle for o while.
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