Documentos de Académico
Documentos de Profesional
Documentos de Cultura
a+bi i=raiz de -1
parte imaginaria, números complejos
>>texto= ‘Hola que tal’ (no se pueden poner espacios en las variables, hay que poner comillas)
texto=’-----------’
1 Byte= 8 bit
>>5*2=x NO
Regla de asignación: y=x+1 ERROR LÓGICO, no le has dado un valor a la X, por tanto es
impredecible.
PROBLEMA DE PRÁCTICAS:
Intercambiar las variables:
>>a=3
l a=3
>>b=5
b=5
1. >>a=b
2. >>b=a
Haciendo lo anterior solo consigues cambiar una de las variables.
3. Guardamos el valor de la a >>aux=a
4. >>a=b
5. >>b=aux
—------------------------------------------------------------------------------------------------------------------------
EJERCICIOS:
1) 3,5,6 NO válidos
2) 1.Asignar valor 2.incrementar 1 al valor de la variable 3.result
3) Para intercambiar el valor de dos variables…
4) Convertir las fórmulas a expresiones en Matlab:
>>C=20;
>>F=9/5 *C - 32 (no hacen falta los () por el orden de pref)
—--------------------------------------------------------------------------------------------------------------
>>help sin
>>who
>>whos
a b
script
a=3;
b=5;
c=4;
s=(a+b+c)/2;
A=sqrt(s*(s-a)*(s-b)*(s-c))
Funciones elementales:
sqrt(x) calcula la raíz cuadrada de x
abs(x) devuelve el valor absoluto de x
mod(x, y) ) devuelve el resto de dividir x entre y
round(x) devuelve el número entero más cercano a x (“redondeo” de x)
floor(x) devuelve el número entero más cercano e inferior a x (“suelo” de x)
ceil(x) devuelve el número entero más cercano y superior a x (“techo” de x)
recta.m
x1=5;
x2=8;
y1=-3;
y2=0.15;
a=y2-y1;
b=x1-x2;
c=y1*x2 - y2*x1;
a
b
c
fracciones.m
x=3;
y=0.25;
frac1=((5*x)-(4*y))/(3*x^2+6*y^4);
frac2=(sqrt(3*x^2-28))/(123-y);
Z= frac1-frac2
coche.m
a=1.55;
t1=5;
t2=10;
v_t1= a*t1
d_t1=0.5*a*t1^2
v_t2= a*t2
d_t2=(a*t2^2)/2
TEMA 3
i=1;
while i<=n && pos==0
if v(i)==val
pos=i ,
end
i=i+1; si no estuviese esto, el bucle sería infinito
end
if pos==0
fprintf(‘no encontrado’)
else …
________
for i= 1:n
if v(i)==val
pos=i
end
________
v=zeros (1:20);
n_datos= 0
val=input(‘...’);
end
v1=zeros(1,10);
v2=zeros(1,10);
index1=1;
index2=1;
for i=1:n_datos
if mod(i,2)==0 (estoy en el índice par, va al v2)
/rem
v2(index2)=v(i),
index2=index2+1
else
v1(index1)=v(i);
index1=index1+1;
end
end
n_w=0;
for i=1:tam2
if v1(i)==v2(i)
n_w=n_w+1; k=1;
w(n_w)=v1(i); find=0; (Ahora hace falta saber que no está
repetido) while k<n_w && find==0
if w(k)==v1(i)
end find=k;
end if find==0
end n_w=n_w+1;
w(n_w)=v1(i);
end
end
end
end
ej;
entrada: 23 23 7 45 73 72 71 7 9 100
salida: v=(23,23,7,45,73,72,71,7,9,0,0,0,0,0,0,0,0,0,0,0)
v1=(23,7,45,73,71,9,0,0,0,0)
v2=(23,45,45,72,7,0,0,0,0,0)
w=(23,7,45,0,0,0,0,0,0,0)
EJERCICIO EXAMEN
Implementa una función en matlab llamada sumadiagonalsd que reciba una matriz cuadrada
(nxn) de números llamada M y devuelva la suma de la diagonal superior derecha de la
misma. Crea un script donde se usa la función anterior. Ejemplo para una matriz de 3 x 3.
En negrita lo que debe sumarse: a+b+c+e+f+i
a b c
d e f
g h i
EJERCICIO EXAMEN
Implemente un script en Matlab que permita leer 10 enteros por teclado (todos deben ser
positivos). Si se introduce un número real, éste debe redondearse. Después de esto el script
debe mostrar, usando la instrucción fprintf, la suma de los valores pares una vez
redondeados.
Los valores leídos NO pueden almacenarse en un vector.
EJERCICIO INVENTADO
Ordenar v incremental v=[ 8 , 5 ,3 , 9 ,−5 ,0 , 3.14 ] → [−5 , 0 , 3 ,3.14 ,5 , 8 , 9 ]
n=length(v);
for i=1:n-1
min=v(i)
pos=i;
for j=i+1:n
if v(j)<min
min=v(j);
pos=j;
end
end
end
If t==suma
triangular=true;
end
n=n+1;
end
if triangular==true
disp('es triangular ')
else
disp('no es triangular ')
end
while num_positivo~=0
if num_positivo <0
disp('valor no válido');
media = suma/total_num;
suma2=0;
for i=length(v)
suma2 = suma2 + (v(i)^2 - media^2);
end
varianza = suma2/total_num;
fprintf('la varianza es %f\n',varianza)