Vous êtes sur la page 1sur 3

COMANDO DE MATLAB

La sentencia for repite un conjunto de sentencias un nmero predeterminado de veces. La


sentencia for de MATLAB es muy diferente y no tiene la generalidad de la sentencia for de
C/C++/Java. La siguiente construccin ejecuta sentencias con valores de i de 1 a n,
variando de uno en uno.

for i=1:n
sentencias
end
o bien,

for i=vectorValores
sentencias
end
donde vectorValores es un vector con los distintos valores que tomar la variable i. En el
siguiente ejemplo se presenta el caso ms general para la variable del bucle (valor_inicial:
incremento: valor_final); el bucle se ejecuta por primera vez con i=n, y luego i se va
reduciendo de 0.2 en 0.2 hasta que llega a ser menor que 1, en cuyo caso el bucle se
termina:

for i=n:-0.2:1
sentencias
end
En el siguiente ejemplo se presenta una estructura correspondiente a dos bucles anidados.
La variable j es la que vara ms rpidamente (por cada valor de i, j toma todos sus posibles
valores):

for i=1:m
for j=1:n
sentencias
end
end
Una ltima forma de inters del bucle for es la siguiente (A es una matriz):

for i=A
sentencias
end
en la que la variable i es un vector que va tomando en cada iteracin el valor de una de las
columnas de A. Cuando se introducen interactivamente en la lnea de comandos, los
bucles for se ejecutan slo despus de introducir la sentencia end que los completa.
For end
La sintaxis formal de la estructura de flujo de control For...End for es:

For (Variable_Contador; Expresion_Inicio; Expresion_Fin {; Expresion_Incremento})


instruccin(es)
End for
El bucle For...End for es un bucle controlado por una variable contador:

La variable contador Variable_Contador es una variable numrica (Real, Entero, o Entero


largo) que el bucle For...End for inicializa en el valor especificado por Expresion_Inicio.

Cada vez que el bucle se ejecuta, el valor del contador se incrementa en el valor
especificado por el parmetro opcional Expresion_Incremento. Si no especifica
Expresion_Incremento, la variable contador se incrementar por defecto en uno (1).

Cuando el contador alcanza el valor de Expresion_Fin , el bucle se detiene.

Importante: las expresiones numricas

Expresion_Inicio
,
Expresion_Fin
y
Expresion_Incremento
son evaluadas una sola vez al comienzo del bucle. Si estas expresiones son variables, su
modificacin al interior del bucle no afectar el bucle.
If-else-end

Sintaxis
Si expresin
Declaraciones
Elseif expresin
Declaraciones
ms
Declaraciones
fin
Descripcin
ejemplo
If expresin, sentencias, end evala una expresin y ejecuta un grupo de sentencias
cuando la expresin es verdadera. Una expresin es verdadera cuando su resultado es no
vaca y contiene slo elementos distintos de cero (lgico o real numrico). De lo contrario,
la expresin es falsa.
Los bloques elseif y else son opcionales. Las sentencias slo se ejecutan si las expresiones
anteriores en el bloque if ... end son falsas. Un bloque if puede incluir mltiples bloques
elseif.
While-end
Sintaxis
Mientras que la expresin
Declaraciones
fin
Descripcin
Mientras que expresin, sentencias, end evala una expresin y repite la ejecucin de un grupo de
instrucciones en un bucle mientras la expresin es verdadera. Una expresin es verdadera cuando
su resultado es no vaca y contiene slo elementos distintos de cero (lgico o real numrico). De lo
contrario, la expresin es falsa.

fid = fopen('magic.m','r');

count = 0;

while ~feof(fid)

line = fgetl(fid);

if isempty(line) || strncmp(line,'%',1) || ~ischar(line)

continue

end

count = count + 1;

end

count

count = 31

fclose(fid);

Vous aimerez peut-être aussi