Professional Documents
Culture Documents
Vectores:
: Significa todo
>> x=[7 8 9]; a:b desde la fila a hasta la fila b
>> x(2)
ans = P=
8 7 8
>> y=[1;2;3]; 2 0
>> y(2) 1 7
ans =
2
>> y(3)
ans =
>> z=B(2:4,2) A=
z= 0 0 0
6 0 0 0
1 > x=[3,2]
5 x=
3 2
>> Z=B(:,2:4) >> A=zeros(x)
Z= A=
2 3 4 0 0
6 7 8 0 0
1 2 0 0 0
5 1 7 >> size (A)
ans =
Concatenando matrices 3 2
A B
>> A=zeros(size(C))
A=
0 0
A B 0 0
0 0
0 0
>> A=[1 2;3 4]; 0 0
>> B=[5 6;7 8]; >> B=ones(2,2)
>> C=[A B] B=
C= 1 1
1 2 5 6 1 1
3 4 7 8 >> b=ones(4)
>> D=[A;B] b=
D= 1 1 1 1
1 2 1 1 1 1
3 4 1 1 1 1
5 6 1 1 1 1
7 8 >> I=eye(3)
>> x=1:5; I=
>> y=2:2:10; 1 0 0
>> C=[x' y'] 0 1 0
C= 0 0 1
1 2
2 4
3 6
4 8
5 10
Contiene especificaciones
Ej: de formato
>> A=input('Ingrese la matriz A: ')
Ingrese la matriz A: [1 2;3 4] % e notacin cientfica
%f: notacin de punto fijo
A= %g: el ms corto entre %f y %e y
eliminando ceros no significativos.
1 2 >> x=8.5
2 4 x=
>> A=input('Ingrese la matriz A: '); 8.5000
Ingrese la matriz A: [1 2;3 4] >> fprintf('La nota obtenida en el
examen es %f',x)
Operaciones de Salida La nota obtenida en el examen es
>> 1.234567890123456789 8.500000>>
ans = >> fprintf('La nota obtenida en el
1.2346 examen es %e',x)
>>format short % 4 decimales La nota obtenida en el examen es
>>format long % 14 decimales 8.500000e+000>>
>>disp(x) % solo muestra el >> fprintf('La nota obtenida en el
contenido no asi el examen es %g\n',x)
nombre La nota obtenida en el examen es 8.5
1.2345678910234 >> a
>> format bank % 2 decimales a=
>> disp(x) 1.1235
1.23 >> fprintf('%5.2f\n',a)
>> format rat % Notacin 1.12
>> x=0.5 Fraccionaria >> fprintf('%.4e\n',a)
x= 1.1235e+000
>> fprintf('%7.2f\n %6.2f\n %5.2f\n
>> disp(pi) %4.2f\n',a,a,a,a)
355/113 1.12
>>help format 1.12
>>clock 1.12
ans = 1.12
1.0e+003 * >> fprintf('El valor de x es %.1e\ny el
2.0060 0.0080 0.0290 0.0110 valor de y es %g\n',x,y)
0.0560 0.0437 El valor de x es 3.6e-002
y el valor de y es 9
>> A=[1 2 3;4 5 6;7 8 9] OPERADORES ARITMTICOS
A= Operaciones entre escalares,
1 2 3 sean a, b escalares
4 5 6 o a+b(suma)
7 8 9 o a-b(resta)
>> fprintf('%g',A) o a*b(multiplicacin)
147258369>> o a/b(divisin de a entre b)
>> fprintf('%g\n',A) o a^b (potenciacin ab)
1
4 Jerarqua:
7
^ Primero
2
5
* / Izquierda a
8
derecha
3 + -
6
9
>> fprintf('%g %3.1f %g\n',A) >> 2^2-5
1 4.0 7 ans =
2 5.0 8 -1
3 6.0 9 >> 3^2-4*5/2+1
>> fprintf('%g%3.1f%g\n',A) ans =
14.07 0
25.08 x+ y
Ej:
36.09 n+w
a
>>(x+y)/(n+(w/a))
>>(x+y)/(n+w/a)
>>x+y/(n+w/a) No es igual!!!
a2 + b2
>>a^2 + b^2
>>(a^2) + (b^2)
Operadores Matriciales
Sean A, B matrices, n escalar no nulo.
o A+B (suma matricial)
o A-B (resta matricial)
o A*B (multiplicacin
matricial)
o A/B (A*B-1)
o A\B (A-1*B)
o A^n (A*A*A*A*...n veces
*A)
o A (Transpuesta de A)
Operaciones con Arreglos >> 5>3
Sean A, B matrices n un entero no ans =
nulo. 1
o A+B (aij+bij) >> 3>5
o A- B (aij-bij), ans =
o A.*B (aij*bij) 0
o A./B (aij/bij)
o A.\B (aij\bij)
o A.^n (aijn) >> A=[5 7 8];B=[4 7 9];
>> A<=B
Estas operaciones son elemento por ans =
elemento. 0 1 1
>> A=[8 1 2;3 5 6];B=[7,9,0;1,2,3];
>> x=[1 2 3]; >> A>B
>> y=x^2 ans =
??? Error using ==> mpower 1 0 1
Matrix must be square. 1 1 1
>> y=x.^2 >> A(2)==B(3)
y= ans =
1 4 9 0
>> d=x.*y >> V=[4 3 8];m=[3 2 7];
d= >> m==V-1
1 8 27 ans =
>> z=x+1 1 1 1
z=
2 3 4 Jerarqua
>> m=2*x 1. Operaciones aritmticas
m= 2. Operaciones relacionales
2 4 6
>> m=2.*x OPERACIONES LGICAS
m= o negacin (no)
2 4 6 o & conjucin (y)
o | disyuncin inclusiva (o)
OPERACIONES RELACIONALES Verdadero cualquier nmero no nulo
o > mayor que usualmente 1
o < menor que Falso cero
o >= mayor o igual que a b a a&b a | b xor(a,b)
o <= menor o igual que 0 0 1 0 0 0
o == igual a 0 1 1 0 1 1
o = distinto de 1 0 0 0 1 1
1 1 0 1 1 0
Expresin operaciones relacionales Jerarqua:
1 si es verdadero
0 si es falso. ~ Alta
Mtodo:
o Planteamiento del Problema
o Entrada/Salida
o Anlisis (analizar casos particulares/casos sencillos
o Creacin de un algoritmo
o Flujo grama
o Relato
o Pseudo cdigo
o Crear un cdigo (lenguaje de programacin)
o Probar el programa
Estructuras selectivas:
Para Matlab:
If <condicin>
Accin
End
c. Seleccin doble (if/else)
If condicin
accin1
else
accion2
end
Ej. Crear un programa en Matlab que pida al usario un nmero y que el programa
responda si el nmero es par o no.
%par.m
%Respnde si un nmero es par
a=input('Ingrese un nmero:');
r=rem(a,2);
if r==0 %no se debe poner el ;
fprintf('El nmero es par\n');
else
fprintf('El nmero no es par\n');
end
>> par
Ingrese un nmero:25
El nmero no es par
>> par
Ingrese un nmero:80
El nmero es par
si Expresin no
Accin 1 = Caso 2
si Expresin no
Accin 2 = Caso n
si
Accin n Accin otro
MATLAB (if/elseif)
if <expression = caso 1>
accion 1
elseif expression = caso 2
accion 2
.
.
.
elseif expression = caso n
accion n
else
otra accion
end
Ej: Crear un programa en Matlab que resuelva la ecuacin ax+b=0, siendo a y b entradas
del usuario.
%ec.m
%Resuelva ax+b=0, con a y b entradas
%del usuario
fprintf('Resolviendo ax+b=0\n');
a=input('a=');
b=input('b=');
if a==0 & b==0
fprintf('Solucin indeterminada\n');
elseif a==0 & b~=0
fprintf ('Solucin Imposible\n');
else
fprintf('La solucin es x=%f\n',-b/a);
end
Corriendo el programa
>> ec
Resolviendo ax+b=0
a=1
b=1
La solucin es x=-1.000000
>> ec
Resolviendo ax+b=0
a=0
b=0
Solucin indeterminada
>> ec
Resolviendo ax+b=0
a=0
b=1
Solucin Imposible
>>
%ec2.m
%Resuelve ax+b=0
a=input('a=');
b=input('b=');
switch (abs(a) + abs(b))
case 0
fprintf('solucion indeterminada\n');
case b
fprintf('solucin imposible\n');
case -b
fprintf('solucin imposible\n');
otherwise
fprintf('La solucin es x=%g\n',-b/a);
end
Estructuras Repetivas (iterativas)
Bucle o Lazo: Es un conjunto de instrucciones que se repiten hasta que se cumpla una
condicin establecida.
a) Lazo while
no MATLAB
Condicin
while <condicin>
si accin
end
Accin 1
Ej:
% epsilon.m
x=1;
while (1+x>1)
x=x/2;
end
eps=2*x
Lazo for
for i=min:p:max
accin
|
|
end
i=variable de conteo
min=limite inferior de conteo
max=limite superior de conteo
p=paso o incremento en el conteo
%vecord
v=input('Ingrese un vector')
m=length(v);
for i=1:m-1
for j=(i+1):m
if v(i)>v(j)
temp=v(i);
v(i)=v(j);
v(j)=temp;
end
end
end
disp('Vector ordenado'),v