Está en la página 1de 9

Práctica #1.

Fundamentos de MATLAB #1

Operaciones básicas
>> a = 3; % Signo de porcentaje se usa para agregar comentarios
>> b = 5; % Lo que está en comentario no se ejecuta
>> c = a+b % Si no se usa el punto y coma, MATLAB “imprime” el valor

c =

>> A = 3; %En MATLAB las variables A y a son distintas


>> B = A; %B=A no relaciona directamente las variables, solo copia el
contenido de B en A.
>> B

B =

>> a = 3;
>> b = 9;
>> c = 2*a+b^2-a*b+b/a-10 %Operaciones aritméticas básicas + - * / ^

c =

53

>> a = 3;
>> a = a+1; %El valor de a se actualiza ante una nueva operación
>> a

a =

Impresión de líneas de caracteres con formato (comando FPRINTF)

>> fprintf('Hola')

Hola

>> a = 3;
>> b = a*a;
>> c = a*a*a;
>> d = sqrt(a);
>> fprintf('%4u al cuadrado es igual a %4u \r', a, b) %El “%4u”
corresponde a un entero de 4 dígitos
>> fprintf('%4u al cubo es igual a %4u \r', a, c) %El “\r” hace cambio de
línea
>> fprintf('La raiz cuadrada de %2u es %6.4f \r', a, d) %El “%6.4f”
corresponde a un número real con 4 dígitos a la derecha del punto flotante
%sqrt() es una función de MATLAB para calcular la raíz cuadrada

3 al cuadrado es igual a 9
3 al cubo es igual a 27
La raiz cuadrada de 3 es 1.7321

Arreglos
>> a = [3 6 7]; %arreglo de tres dígitos
>> b = [1 9 4];
>> c = a+b %adición elemento a elemento

c =

4 15 11

>> a = [3 6 7];
>> b = [1 9 4 5];
>> c = a(2) + b(4) %extrae el segundo elemento de a y el cuarto elemento
de b y los suma

c =

11

Continuación a la siguiente línea

>>suma1 = 1 + 3 + 5 + 7 ... %los tres puntos (seguidos de un espacio)


+ 9 + 11 %permiten continuar en la siguiente línea

suma1 =

36

Limpiar una variable de la memoria

>> c1 = 3;
>> c2 = c1+5;
>> clear c1 %el comando clear sin argumentos limpia TODAS las variables
>> c1
Undefined function or variable 'c1'.

Funciones intrínsecas y constantes


>> x = pi; %"pi" (= 3.14159...) es una constante intrínseca reservada
>> y = sin(pi/2) %ejecución de una función dentro de otra es permitida
>> z = exp(-sin(pi/2)) %la función más interna se evalúa primero

y =

z =

0.3679

El comando help brinda ayuda sobre cualquier función de MATLAB

>> help pi
pi 3.1415926535897....
pi = 4*atan(1) = imag(log(-1)) = 3.1415926535897....

Reference page in Help browser


doc pi

>> help sin


sin Sine of argument in radians.
sin(X) is the sine of the elements of X.

See also asin, sind.

Overloaded methods:
codistributed/sin
gpuArray/sin

Reference page in Help browser


doc sin

Para una lista de funciones intrínsecas escriba:

>> help elfun


Elementary math functions.

Trigonometric.
sin - Sine.
sind - Sine of argument in degrees.
sinh - Hyperbolic sine.
asin - Inverse sine.
asind - Inverse sine, result in degrees.
asinh - Inverse hyperbolic sine.
cos - Cosine.
.
.
.
Gráficos
>> x = [0:0.1:20]; %equivalente a x = [0 0.1 0.2 0.3 ... 19.8 19.9 20]
>> y = sin(x); %y = [sin(0) sin(0.1) sin(0.2) ... sin(19.9) sin(20)]
>> plot(x,y) %gráfico de y en función de x

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
0 2 4 6 8 10 12 14 16 18 20

Matrices

>> a = [3 4; 1 6]; %El “;” separa las filas de la matriz


>> b = [5 2; 11 7];
>> c = a+b %suma elemento a elemento

c =

8 6
12 13

>> a = [3 5; 1 4];
>> b = 2*a %multiplicación escalar por una matriz (o arreglo)

b =

6 10
2 8

>> a = [2 3; 1 4];
>> b = [5 1; 7 2];
>> c = a*b % multiplicación de dos matrices

c =

31 8
33 9
>> a = [2 3; 1 4];
>> b = [5 1; 7 2];
>> c = a.*b %el punto antes de multiplicación “.*” indica multiplicación
elemento a elemento

c =

10 3
7 8

>> A = [3 5; 2 4];
>> c = A(2,2)+A(1,2) %extracción de elementos (fila,columna) de la matriz

c =

Resolviendo un sistema de ecuaciones lineales

>> A = [4 1 2; 0 3 1; 0 1 2];
>> b = [17 ; 19 ; 13]; %sistema [A]x=b: 4x1+x2+2x3=17; 3x2+x3=19; x2+2x3=13
>> x = inv(A)*b %solución x =[A]-1 b, inv(A) matriz inversa de A.

x =

1
5
4

El ciclo for – end (algoritmo de repetición)

>> b=3;
>> for k=1:5 %dos puntos define un rango de k= [1 2 3 4 5]
b
end %ciclo for se cierra con “end”

b =

3
3
3
3
3

Uso del contador como variable comodín


>> b = 3;
>> for k = 1:5 %el valor de "k" se incrementa en cada ciclo en 1
b^k %las salidas del programa son 3^1, 3^2, 3^3, 3^4, y 3^5
end

ans =

3
9
27
81
243

>> suma1 = 0;
>> for k = 1:9
suma1 = suma1+k; %este programa hace la suma de 1+2+3+4+5+6+7+8+9 (= 45)
end
>>suma1

suma1 =

45

>> suma1 = 0;
>> for k = 1:2:9 %el paso del intervalo se define en 2
suma1 = suma1+k; %este programa hace la suma de 1+3+5+7+9 (= 25)
end
>> suma1

suma1 =

25

>> b = [3 8 9 4 7 5];
>> suma1 = 0;
>> for k = 1:4
suma1 = suma1+b(k); %extrae el valor los 4 primeros elementos de b y los
suma
end
>> suma1

suma1 =

24

El ciclo for anidado


>> suma1 = 0;
>> for n = 1:2
for m = 1:3
suma1 = suma1+n*m; %este programa hace la suma de 1*1+1*2+1*3+2*1+2*2+2*3
= 16
end
end
>> suma1

sum1 =

18

>> for n = 1:2


for m = 1:3
fprintf('n = %3u m = %3u \r', n, m)
end
end

n = 1 m = 1
n = 1 m = 2
n = 1 m = 3
n = 2 m = 1
n = 2 m = 2
n = 2 m = 3

El comando if – else (algoritmo de selección)

>> numero1 = 7;
if (numero1 > 5) %si la condición es cierta ejecuta el siguiente comando
fprintf('%4u es mayor que 5 \r', numero1)
else %si no ejecuta el siguiente comando
fprintf('%4u es menor o igual que 5 \r', numero1)
end

7 es mayor que 5

Si cambiamos la primera línea


>> numero1 = 3;
if (numero1 > 5)
fprintf('%4u es mayor que 5 \r', numero1)
else
fprintf('%4u es menor o igual que 5 \r', numero1)
end

3 es menor o igual que 5

Estructura if – elseif – else


>> numero1 = 4;
if (numero1 >= 5)
fprintf('%4i es mayor o igual que 5 \r', numero1) %El “%4i” corresponde a
un real de 4 dígitos
elseif (numero1 > 1)
fprintf('%4i es menor que 5 pero mayor que 1 \r', numero1)
elseif (numero1 == 1)
fprintf('%4i es igual a 1 \r', numero1)
elseif (numero1 > -3)
fprintf('%4i es menor que 1 pero mayor que -3 \r', numero1)
else
fprintf('%4i es menor o igual que -3 \r', numero1)
end

4 es menor que 5 pero mayor que 1

Ej: Determinar si un año es bisiesto


>> anho = 1975;
if (mod(anho, 400) == 0) %la función mod(x,y) determina el residuo de x/y
fprintf('%6u es un año bisiesto', nyear)
elseif (mod(anho,4) == 0) & (mod(anho,100) ~= 0) %el ampersand (&)
representa el operador lógico AND, la barra vertical (|) representa OR y
(~) representa NOT (también se puede escribir AND, OR o NOT resp.)
fprintf('%6u es un año bisiesto', anho)
else
fprintf('%6u no es un año bisiesto', anho)
end

1975 no es un año bisiesto

Combinación de selección y repetición


>> suma1 = 0;
>> suma2 = 0;
>> N = 9;
>> for k = 1:N
suma1 = suma1+k;
if (mod(k,3) == 0)
suma2 = suma2+k;
end
end
>> suma1 %suma1 = 1+2+3+4+5+6+7+8+9

suma1 =

45

>> suma2 %suma1 = 3+6+9

suma2 =

18
El ciclo while – end (algoritmo de repetición)

>> x = 3;
while (x < 100) %el ciclo while es como una combinación de un ciclo for y
un comando if (el ciclo se mantiene mientras la prueba lógica se cumpla)
x = x*3;
end
>> x

x =

243

También podría gustarte