Matlab Ciclo for

Ejecuta una declaración un número especifico de veces.

Para los primeros ejemplos tenemos:

A=[1 2 3 4 5 6];

[m n]= size(A) 	
m=1  
n=6

 

Ejemplo 1

Para familiarizarte con el ciclo for, te mostramos un ejemplo sencillo, en el que irá columna por columna de la matriz A sumando 10:

for i_columna = 1:n
     B(1,i_columna)=A(1,i_columna)+10;
end

B
B= [11   12   13   14   15   16]

En la primera linea se crea la variable i_columna la cual empieza en 1 y terminará en el valor correspondiente a n (6, el número de columnas de la matriz A)

En la segunda fila, se crea la matriz B y solicita que los resultados queden en 1 fila, y se acomoden en la posición de columna igual a i_columna, de igual manera, pide la ubicación de la matriz A en base a i_columna ​​​y le suma 10 a cada valor.

 El ; evita que se muestren los resultados de cada ciclo

Para visualizar el resultado de la matriz B, escribimos B o disp(B).


Ejemplo 2

for i_columna = 2:n
     C(1,i_columna)=A(1,i_columna-1)*A(1,i_columna);
end	

C
C=[ 0     2     6    12    20    30]

En este caso, la variable i_columna empieza en 2 hasta n, y estamos solicitando que la matriz C arroje la multiplicación entre el valor con posición i_columna y el valor de su posición anterior, y los ubique en C en la posición i_columna. Como empieza desde 2, la posición 1 es igual a cero.


 

Para los siguientes ejemplos utilizaremos la siguiente matriz:

D=[1 2 3  4  5  6
   7 8 9 10 11 12];

[mD nD]= size(D)  	
mD=2
nD=6

 

Ejemplo 3

for i_columna = 1:nD
     E(:,i_columna)=D(:,i_columna)+i_columna;
end	

E
E=[  2     4     6     8    10    12
     8    10    12    14    16    18]

En este caso, esta tomando el valor de cada celda de D y sumándole el valor del incremento de i_columna. Como puedes ver la primera columna de E es el valor de D + 1, la segunda +2, y asi sucesivamente.

 

Ejemplo 4

for i_columna = 2:nD
     F(i_columna,:)=D(:,i_columna-1).*D(:,i_columna);
end	                  

F
F=[  0     0
     2    56
     6    72
    12    90
    20   110
    30   132]

En este caso realizamos la misma operación del ejemplo 2, con la diferencia que toma todos los valores de las columnas, y que organiza los datos en filas por "F(i_columna,:)"

 

Ejemplo 5

Es posible ingresar un ciclo for dentro de otro:

for i_op = 1:mD
    for i_columna = 1:nD
         G(i_op,i_columna)=D(i_op,1)+D(i_op ,i_columna);
    end
end	     

G
G=[  2     3     4     5     6     7
    14    15    16    17    18    19]

El primer ciclo for es con la variable i_op desde 1 hasta mD (2, número de filas), y el ciclo for interno es con la variable i_columna desde 1 hasta nD.

En el primero ciclo for i_op = 1
Se le esta pidiendo que la matriz G muestre sus resultados en la fila 1, y con columna i_columna que va cambiando con el ciclo interno, entonces el primer valor D(i_op,1) es un valor fijo, equivalente a D(1,1)=1 al cual se le irán sumando los valores de la columna D siguientes, si quitamos el ; para ir viendo la operación, el primer ciclo dará los siguientes resultados, recordemos la matriz D:

D=[1 2 3  4  5  6
   7 8 9 10 11 12];

G = [2]
G = [2  3]
G = [2  3  4]
G = [2  3  4  5]
G = [2  3  4  5  6]
G = [2  3  4  5  6  7]

Cuando ya termina el ciclo for interno, vuelve al ciclo for de  i_op, el cual ahora sería igual a 2, entonces el valor fijo inicial sería D(i_op,1) = D(2,1) =7, al cual se le irán sumando los valores de la columna D siguientes en su respectiva fila (i_columna empezará el ciclo de nuevo en 1), y se acomodaran en la segunda fila de G; ya que G(i_op,i_columna) = G(2,i_columna). Obteniendo así:

G = [2     3     4     5     6     7
    14     0     0     0     0     0]

G = [2     3     4     5     6     7
    14    15     0     0     0     0]

G = [2     3     4     5     6     7
    14    15    16     0     0     0]

G = [2     3     4     5     6     7
    14    15    16    17     0     0]

G = [2     3     4     5     6     7
    14    15    16    17    18     0]

G = [2     3     4     5     6     7
    14    15    16    17    18    19]

Como puedes observar, el primer resultado de este segundo ciclo i_op es igual a 7+7 y los demás valores de la segunda fila son cero, la siguiente es 7+8 y así sucesivamente hasta completar el ciclo interno i_columna, el cual termina en mD=2.

 

 

 


Creado por: Laura BP 2020/04/10
Visitas

196