Introducción a Matlab
Contents
- Flujo en un canal circular (pág. 32)
- Suma de Series de Fourier (pág. 47)
- Evaluación de función bidimensional (pág. 49)
- Entrada de datos desde ficheros Excel (pág. 68)
- Convergencia de una serie (pág 78)
- Ejemplos de recursividad (pág. 87)
- Ejemplo de creación de una función (pág. 88)
- Ejemplo de subfunciones (pág. 92)
- Ejemplo de función anónima (pág. 94)
- Ejemplo de feval (pág. 100)
- Ejemplo de polyfit/polyval (pág. 106) Ingresar r = 2.5, valor para evaluar = 0.93
- Ejemplo de spline (pág. 108)
- Ejemplo de interp1 (pág. 111)
- Ejemplo de trapz(pág. 113)
- Ejemplo de trapz(pág. 114)
- Ejemplo de diff (pág. 117)
- Ejemplo de transformada de Fourier (pág. 124)
- Ejemplo de integración numérica – quadl (pág. 134)
- Ejemplo de integración numérica – dblquad (pág. 137)
- Ejemplo de solución numérica de EDO (pág. 148)
- Ejemplo de solución numérica de EDO con bvp4c (pág. 157)
- Ejemplo de mínimo local de una función – fminbnd (pág. 163)
- Ejemplo de maximo local de una función – fminbnd (pág. 163)
- Ejemplos de gráficos (pág. 18)
- Ejemplos de gráficos (pág. 19)
- Ejemplos de gráficos (pág. 20)
- Ejemplos de gráficos (pág. 21)
- Ejemplos de gráficos (pág. 22)
- Familia de Curvas (pág. 23)
- Gráficas de múltiples funciones en una figura (pág. 24)
- Gráficas de múltiples funciones en una figura (pág. 25)
- Gráficas de múltiples funciones en una figura (pág. 25)
- Cambio de apariencia de las gráficas (pág. 29)
- Cambio de apariencia de las gráficas (pág. 29)
- Cambio de apariencia de las gráficas (pág. 30)
- Ejemplos de gráficos de propósito especial (pág. 33)
- Ejemplos de gráficos de propósito especial (pág. 33)
- Ejemplos de gráficos de propósito especial (pág. 34)
- Ejemplos de gráficos de propósito especial (pág. 34)
- Ejemplos de gráficos de propósito especial (pág. 35)
- Ejemplos de gráficos de propósito especial (pág. 35)
- Ejemplos plotyy (pág. 37)
- Ejemplos convhull (págs. 39)
- Ejemplos delauney, y voronoi (págs. 40)
- Ejemplo de pie y pie3 (pág. 42)
- Ejemplo de pie y pie3 (pág. 43)
- Ejemplo de pie y pie3 (pág. 44)
- Lectura, visualización y manipulación de imágenes digitales (pág. 48)
- Lectura, visualización y manipulación de imágenes digitales (pág. 48)
- Lectura, visualización y manipulación de imágenes digitales (pág. 49)
- Etiquetas de ejes y curvas, títulos y texto (pág. 52)
- leyendas (pág. 56)
- relleno de regiones (pág. 59)
- orden de relleno (pág. 62)
- transparencia (pág. 63)
- transparencia (pág. 64)
- control del contorno (pág. 67)
- control del contorno (pág. 67)
- Letras griegas, símbolos matemáticos, subíndices y superíndices (pág. 71)
- modificación de atributos de ejes, curvas y texto (pág. 81)
- modificación de atributos de ejes, curvas y texto (pág. 84)
- inserción de un gráfico dentro de otro (pág. 90)
- Ejemplo de Animación (pág. 100)
- gráfico en coordenadas polares (pág. 105)
- Dibujo de cajas de alambres (pág. 9)
- Onda senoidal sobre una superficie de un cilindro (pág. 10)
- Ejemplos de superficies con surf y mesh (pág. 13)
- Ejemplos de superficies con surf y mesh (pág. 13)
- Ejemplos de superficies con surf y mesh (pág. 13)
- combinando superficies y líneas (pág. 17)
- combinando superficies y líneas (pág. 18)
- combinando superficies y líneas (pág. 19)
- modificación de la apariencia de gráficos (pág. 21)
- modificación de la apariencia de gráficos (pág. 21)
- modificación de la apariencia de gráficos (pág. 22)
- funciones adicionales para mejorar visualmente una superficie (pág. 24)
- funciones adicionales para mejorar visualmente una superficie (pág. 24)
- funciones adicionales para mejorar visualmente una superficie (pág. 25)
- funciones adicionales para mejorar visualmente una superficie (pág. 25)
- Ejemplo de gráficos de contornos (pág. 27)
- Ejemplo de gráficos de contornos (pág. 27)
- Ejemplo de contour (pág. 30)
- Ejemplo de contour (pág. 30)
- Ejemplo de contour y clabel (pág. 31)
- Ejemplo de contour y clabel (pág. 31)
- Ejemplo de contour3, contourf y colorbar (pág. 34)
- Ejemplo de contour3, contourf y colorbar (pág. 34)
- Ejemplo de superficie cilíndrica (pág. 37)
- Superficies cilíndricas, esféricas y elipsoidales (pág. 39)
- Superficies cilíndricas, esféricas y elipsoidales (pág. 40)
- Ejemplo de view y shading (pág. 44)
- Ejemplo de view y shading (pág. 45)
- Ejemplo de view y shading (pág. 46)
- Ejemplo de view y shading (pág. 47)
- Ejemplo de transparencia (pág. 50)
- Ejemplo de transparencia (pág. 50)
- Ejemplo de transparencia (pág. 51)
- Ejemplo coloreado de cajas (pág. 54)
- Ejemplo: intersección de un cilindro y una esfera y resaltado de su intersección (pág. 57)
- Ejemplo: mejora de gráficos 2D con objetos 3D (pág. 58-59)
- Rotación y traslación de objetos 3D: generación de Toro (pág. 68)
Flujo en un canal circular (pág. 32)
Matlab_intro.pdf
g = 9.8; d = 2; th = pi/3; % Input Dc = d/2*(1-cos(th)); Qnum = 2^(3/2)*Dc^(5/2)*sqrt(g)*(th-0.5*sin(2*th))^(3/2); Qden = 8*sqrt(sin(th))*(1-cos(th))^(5/2); Q = Qnum/Qden % m^3/s
Q = 0.5725
Suma de Series de Fourier (pág. 47)
k = 1:150; % (1x150) tau = linspace(-0.5, 0.5, 100); % (1x100) sk = sin(pi*k/4)./(pi*k/4); % (1x150) cntau = cos(2*pi*k'*tau ); % (150x100) f = 0.25*(1+2*sk*cntau); % (1x150) (150x100) -> (1x100) plot(tau, f )

Evaluación de función bidimensional (pág. 49)
n = (1:25)*pi; % (1x25) eta = 0:0.025:1; % (1x41) xi = 0:0.05:0.7; % (1x15) [X1, temp1] = meshgrid(xi, (1-cos(n))./n.^3); % (25x15) temp2 = exp(-n'*xi); % (25x15) Rnx = temp1.*temp2; % (25x15) temp3 = sin(n'*eta); % (25x41) u = 4*Rnx'*temp3; % (15x41) mesh(eta, xi, u)

Entrada de datos desde ficheros Excel (pág. 68)
[X, Y] = xlsread('datosexp2.xlsx')
X = 100.0000 0.1000 110.0000 0.2000 135.0000 0.3300 150.0000 0.4000 175.0000 0.5500 Y = 3×2 cell array 'Respuesta Transductor' '' 'Fuerza' 'Desplazamiento' '(kPa)' '(mm)'
Convergencia de una serie (pág 78)
serie = 1; k = 2; exacto = pi^2/6; while abs((serie - exacto)/exacto) >= 1e-4 serie = serie+1/k^2; k = k+1; end disp(['Numero de terminos = ' num2str(k-1)])
Numero de terminos = 6079
Ejemplos de recursividad (pág. 87)
Factorial
function f = fact(n) if n == 0 f = 1; else f = n * fact(n-1); end
x = fact(10) % % Torres de Hanoi % % % function hanoi(n, i, a, f) % if n > 0 % hanoi(n-1, i, f, a); % fprintf('mover disco %d de %c a %c\n',n,i,f); % hanoi(n-1, a, i, f); % end % hanoi(4,'a', 'b','c')
x = 3628800 mover disco 1 de a a b mover disco 2 de a a c mover disco 1 de b a c mover disco 3 de a a b mover disco 1 de c a a mover disco 2 de c a b mover disco 1 de a a b mover disco 4 de a a c mover disco 1 de b a c mover disco 2 de b a a mover disco 1 de c a a mover disco 3 de b a c mover disco 1 de a a b mover disco 2 de a a c mover disco 1 de b a c
Ejemplo de creación de una función (pág. 88)
help CalcularXY
[u,v] = CalcularXY(0:pi/4:pi, 1.4, 2, 0.75)
Calculo de: x = cos(at)+b y = |x|+c Escalares: a, b, c Vectores: t, x, y u = 3.0000 2.4540 1.4122 1.0123 1.6910 v = 3.7500 3.2040 2.1622 1.7623 2.4410
Ejemplo de subfunciones (pág. 92)
function [m, s] = MeanStdDev(dat) % Main function n = length(dat); m = meen(dat, n); s = stdev(dat, n); function m = meen(v, n) % Sub funcion m = sum(v)/n; function sd = stdev(v, n) % Sub funcion m = meen(v, n); % llamada a una subfuncion sd = sqrt((sum(v.^2) - n*m^2)/(n-1));
v = [1, 2 , 3, 4]; [m, s] = MeanStdDev(v)
m = 2.5000 s = 1.2910
Ejemplo de función anónima (pág. 94)
bet = pi/3; % los parametros deben asignarse antes de la función cx = @(x) (abs(cos(bet*x))); disp(cx(4.1)) % % Versión con dos argumentos: % cx = @(x, bet) (abs(cos(bet*x))); disp(cx(4.1, pi/3)) % % Uso de la versión con dos argumentos en otra func. anónima: % cx = @(x, bet) (abs(cos(bet*x))); crt = @(x) (x^(1/3)); % calcula la raiz cubica del argumento disp(crt(cx(4.1, pi/3)))
0.4067 0.4067 0.7409
Ejemplo de feval (pág. 100)
function d = CosBeta(x, w) % funcion en fichero CosBeta.m % beta = w(1); alpha = w(2) d = cos(x*w(1))-w(2);
function nRoots = ManyZeros(zname, n, xs, toler, dxx, w) x = xs; dx = dxx; nRoots = zeros(n, 1); for m = 1:n s1 = sign(feval(zname, x, w)); while dx/x >toler if s1 ~= sign(feval(zname, x+dx, w)) dx = dx/2; else x = x+dx; end end nRoots(m) = x; dx = dxx; x = 1.05*x; end
NoRoots = 5; xStart = 0.2; tolerance = 1e-6; increment = 0.3; beta = pi/3; a = 0.5; c = ManyZeros(@CosBeta, NoRoots, xStart, tolerance, increment, [beta, a])
c = 1.0000 5.0000 7.0000 11.0000 13.0000
Ejemplo de polyfit/polyval (pág. 106) Ingresar r = 2.5, valor para evaluar = 0.93
ncs = ExpData; c = polyfit(ncs(:,1), ncs(:,2), 4); % r = input('Ingresa parametro r '); % Su = input('Ingresa valor para evaluar '); r = 2.5; Su = 0.93; q = 1/(1+polyval(c, Su)/sqrt(r)); disp(['Valor resultante = ' num2str(q)])
Valor resultante = 0.87855
Ejemplo de spline (pág. 108)
n = 12; xi = 0.1; tau = linspace(0, 20, n); data = DampedSineWave(tau, xi); newtau = linspace(0, 20, 200); yspline = spline(tau, data, newtau); yexact = DampedSineWave(newtau, xi); plot(newtau, yspline, 'r--', newtau, yexact, 'k-')

Ejemplo de interp1 (pág. 111)
xi = 0.1; tau = linspace(0, 4.5, 15); data = DampedSineWave(tau, xi); TauZero = interp1(data, tau, 0)
TauZero = 1.6817
Ejemplo de trapz(pág. 113)
xi = 0.1; N = 200; tau = linspace(0, 20, N); ftau = DampedSineWave(tau, xi); Area = trapz(tau, ftau)
Area = 0.3021
Ejemplo de trapz(pág. 114)
xi = 0.1; tau = linspace(0, 20, 200); ftau = DampedSineWave(tau, xi); Logicp = (ftau >= 0); PosArea = trapz(tau, ftau.*Logicp); Logicn = (ftau < 0); NegArea = trapz(tau, ftau.*Logicn); disp([' Area positiva = ' num2str(PosArea)]) disp([' Area negativa = ' num2str(NegArea)]) disp([' Area neta = ' num2str(PosArea+NegArea)])
Area positiva = 2.9549 Area negativa = -2.6529 Area neta = 0.30207
Ejemplo de diff (pág. 117)
t = linspace(1, 2, 25); L = sum(sqrt(diff(2*t).^2+diff(t.^2).^2+diff(log(t)).^2)) % Ejemplo de polyarea (pág. 119) a = 2; b = 5; t = linspace(0, 2*pi, 11); x = a*cos(t); y = b*sin(t); disp(['Area = ' num2str(polyarea(x, y))])
L = 3.6931 Area = 29.3893
Ejemplo de transformada de Fourier (pág. 124)
k = 5; m = 10; fo = 10; Bo = 2.5; N = 2^m; T = 2^k/fo; ts = (0:N-1)*T/N; df = (0:N/2-1)/T; SampledSignal = Bo*sin(2*pi*fo*ts)+Bo/2*sin(2*pi*fo*2*ts); An = abs(fft(SampledSignal, N))/N; plot(df, 2*An(1:N/2))

Ejemplo de integración numérica – quadl (pág. 134)
xi = 0.1; tau = linspace(0, 20, 200); ftau = DampedSineWave(tau, xi); Area = trapz(tau, ftau) PosArea = trapz(tau, ftau.* (ftau >= 0)); NegArea = trapz(tau, ftau.* (ftau < 0)); disp(['Positive area = ' num2str(PosArea)]) disp(['Negative area = ' num2str(NegArea)]) disp(['Net area = ' num2str(PosArea+NegArea)]) Area = quadl(@DampedSineWave, 0, 20, [], [], 0.1)
Area = 0.3021 Positive area = 2.9549 Negative area = -2.6529 Net area = 0.30207 Area = 0.3022
Ejemplo de integración numérica – dblquad (pág. 137)
r = 0.5; Arg = @(x, y) (exp(-(x.^2-2*r*x.*y+y.^2))); P = dblquad(Arg, -3, 3, -2, 2)/2/pi/sqrt(1-r^2)
P = 0.6570
Ejemplo de solución numérica de EDO (pág. 148)
Ejemploode

Ejemplo de solución numérica de EDO con bvp4c (pág. 157)
bvpEjemplo

Ejemplo de mínimo local de una función – fminbnd (pág. 163)
[xmin, fmin] = fminbnd(@humps, 0.5, 0.8)
xmin = 0.6370 fmin = 11.2528
Ejemplo de maximo local de una función – fminbnd (pág. 163)
[xmax, fmax] = fminbnd(inline('-humps(x)', 'x '), 0, 0.5); disp([' Valor maximo de humps en el intervalo 0 <= x <= 0.5 is ' num2str(-fmax)]) disp([' que ocurre en x = ' num2str(xmax)])
Valor maximo de humps en el intervalo 0 <= x <= 0.5 is 96.5014 que ocurre en x = 0.30039
Ejemplos de gráficos (pág. 18)
Matlab_graficos.pdf
figure; plot(2, 4, 'r*') plot([0, 1], [0, 2]) x = 2:2:8; y = [zeros(1, length(x)); cos(pi*x/20)]; plot([x; x],y, 'k') plot([x; x], y, 'k', x, cos(pi*x/20), 'rs') axis([1, 9, 0, 1])

Ejemplos de gráficos (pág. 19)
figure; x = 2:2:8; y = [zeros(1, length(x)); cos(pi*x/20)]; plot([x; x], y, 'k') hold on plot(x, cos(pi*x/20), 's', 'MarkerEdgeColor', 'b','MarkerFaceColor', 'r', 'MarkerSize', 14) axis([1, 9, 0, 1])

Ejemplos de gráficos (pág. 20)
figure;
theta = linspace(0, 2*pi);
plot(1+0.5*cos(theta), 2+0.5*sin(theta))
axis equal

Ejemplos de gráficos (pág. 21)
figure; theta = linspace(0, 2*pi, 50); % (1×50) rad = 0.5:0.25:1.75; % (1×6) x = 1+cos(theta)'*rad; % (50×6) y = 2+sin(theta)'*rad; % (50×6) plot(x, y, 'k', 1, 2, 'k+') axis equal

Ejemplos de gráficos (pág. 22)
figure; x =-5:0.2:5; % (1×51) a = 1:5; % (1×5) [xx, aa] = meshgrid(x.^2, a.^2); % (5×51) plot(x, aa-xx, 'k')

Familia de Curvas (pág. 23)
figure; aa = 1:3; % (1×3) N = 1:10; % (1×10) [a, k] = meshgrid(aa, N); % (10×3) S = cumsum(1./(a+k).^2); % (10×3) plot(N, S, 'ks-')

Gráficas de múltiples funciones en una figura (pág. 24)
figure;
x = linspace(0, 3.5);
plot(x, [0.1*x.^2; cos(x).^2; exp(-0.3*x)], 'k')

Gráficas de múltiples funciones en una figura (pág. 25)
figure; x = linspace(0, 3.5); plot(x, 0.1*x.^2, 'k', x, cos(x).^2, 'k', x, exp(-0.3*x), 'k')

Gráficas de múltiples funciones en una figura (pág. 25)
figure; x = linspace(0, 3.5); plot(x, 0.1*x.^2, 'k') hold on plot(x, cos(x).^2, 'k') plot(x, exp(-0.3*x), 'k')

Cambio de apariencia de las gráficas (pág. 29)
figure; th = linspace(0, 2*pi, 101); x = sin(th); y = sin(2*th+pi/4); plot(x, y, 'k-') box on grid on

Cambio de apariencia de las gráficas (pág. 29)
figure; th = linspace(0, 2*pi, 101); x = sin(th); y = sin(2*th+pi/4); plot(x, y, 'k-') box off grid off axis off

Cambio de apariencia de las gráficas (pág. 30)
figure; th = linspace(0, 2*pi, 101); x = sin(th); y = sin(2*th+pi/4); plot(x, y, 'k-') box off grid off

Ejemplos de gráficos de propósito especial (pág. 33)
figure; Om = linspace(0.01, 10, 200); [H, T] = FOm(Om, 0.05); semilogx(Om, H)

Ejemplos de gráficos de propósito especial (pág. 33)
figure; Om = linspace(0.01, 10, 200); [H, T] = FOm(Om, 0.05); semilogy(Om, H)

Ejemplos de gráficos de propósito especial (pág. 34)
figure; Om = linspace(0.01, 10, 200); [H, T] = FOm(Om, 0.05); loglog(Om, H)

Ejemplos de gráficos de propósito especial (pág. 34)
figure; Om = linspace(0.01, 2, 50); [H, T] = FOm(Om, 0.05); stairs(Om, H)

Ejemplos de gráficos de propósito especial (pág. 35)
figure; Om = linspace(0.01, 2, 30); [H, T] = FOm(Om, 0.05); stem(Om, H)

Ejemplos de gráficos de propósito especial (pág. 35)
figure; Om = linspace(0.01, 2, 30); [H, T] = FOm(Om, 0.05); bar(Om, H, 0.6)

Ejemplos plotyy (pág. 37)
figure; Om = logspace(-1, 1, 200); [H, T] = FOm(Om, 0.05); plotyy(Om, H, Om, T, 'loglog', 'semilogx')

Ejemplos convhull (págs. 39)
figure; [x, y] = PointSet; n = convhull(x, y); plot(x(n),y(n), 'k-', x, y, 'ok') axis equal

Ejemplos delauney, y voronoi (págs. 40)
figure; [x, y] = PointSet; tr = delaunay(x,y); triplot(tr,x,y,'k') hold on axis equal plot(x, y, 'ok') [x, y] = PointSet; voronoi(x, y, 'ko') axis equal

Ejemplo de pie y pie3 (pág. 42)
figure;
dat = [39, 10, 1];
pie(dat) % o pie3(…)

Ejemplo de pie y pie3 (pág. 43)
figure;
dat = [39, 10, 1];
pie(dat, [1, 1, 0] ) % o pie3(…)

Ejemplo de pie y pie3 (pág. 44)
figure; dat = [39, 10, 1]; dat = 100*dat/sum(dat); A = ['Operational ' num2str(dat(1)) '%']; B = ['Initial ' num2str(dat(2)) '%']; C = ['R&D ' num2str(dat(3)) '%']; colormap('cool') pie(dat, [1, 1, 0],{A, B, C}) % o pie3(…)

Lectura, visualización y manipulación de imágenes digitales (pág. 48)
figure; A = imread('WindTunnel.jpg', 'jpeg'); image(A) axis image off

Lectura, visualización y manipulación de imágenes digitales (pág. 48)
figure; A = imread('WindTunnel.jpg', 'jpeg'); A(250:330, 100:180, 1) = 255; A(250:330, 100:180, 2) = 255; A(250:330, 100:180, 3) = 0; image(A) axis image off

Lectura, visualización y manipulación de imágenes digitales (pág. 49)
figure; A = imread('WindTunnel.jpg', 'jpeg'); image(A) figure % row=input('qué fila? '); row = 200; red = A(row, :, 1); gr = A(row, :, 2); bl = A(row, :, 3); plot(red, 'r'); hold on plot(gr, 'g'); plot(bl, 'b');


Etiquetas de ejes y curvas, títulos y texto (pág. 52)
figure; x = linspace(0, 6, 100); plot(x, cos(x), 'k', x, 1./cosh(x), 'k', [4.73, 4.73], [-1, 1], 'k') xlabel('x') ylabel('Valor de las funciones') title('Visualizacion de interseccion de dos curvas') text(4.8, -0.1, 'x = 4.73') text(2.1, 0.3, '1/cosh(x)') text(1.2, -0.4, 'cos(x)')

leyendas (pág. 56)
figure; x = linspace(0, 6, 100); plot(x, cos(x), 'k', x, 1./cosh(x), 'k', [4.73, 4.73], [-1, 1], 'k') xlabel('x') ylabel('Valor de las funciones') title('Visualizacion de interseccion de dos curvas') text(4.8, -0.1, 'x = 4.73') legend('cos(x) ', '1/cosh(x) ', 'Location', 'Southwest')

relleno de regiones (pág. 59)
figure; x = linspace(0,6, 100); plot(x, cos(x), 'k-', x, 1./cosh(x), 'k--', [4.73, 4.73], [-1, 1], 'k') xlabel('x') ylabel('Valor de funciones') title('Visualizacion de interseccion de dos curvas') text(4.8, -0.1, 'x = 4.73') legend('cos(x) ', '1/cosh(x) ', 'Location', 'Southwest') xn = linspace(0, 4.73, 50); hold on fill([xn, fliplr(xn)], [1./cosh(xn), fliplr(cos(xn))], 'c');

orden de relleno (pág. 62)
figure; t = linspace(0, 2*pi); fill(t, 0.5*sin(2*t), 'y') hold on fill(t, sin(t), 'm') axis off t = linspace(0, 2*pi); fill(t, sin(t), 'm') hold on fill(t, 0.5*sin(2*t), 'y') axis off

transparencia (pág. 63)
figure; t = linspace(0, 2*pi); fill(t, 0.5*sin(2*t), 'y') hold on fill(t, sin(t),'m', 'FaceVertexAlphaData', 0.6, 'FaceAlpha', 'Flat') axis off t = linspace(0, 2*pi); fill(t, 0.5*sin(2*t), 'y') hold on fill(t, sin(t), 'm', 'FaceVertexAlphaData', 1,'FaceAlpha', 'Flat') axis off

transparencia (pág. 64)
figure; t = linspace(0, 2*pi); fill(t, 0.5*sin(2*t), 'y') hold on fill(t, sin(t), 'm', 'FaceVertexAlphaData', 0.0,'FaceAlpha', 'Flat') axis off

control del contorno (pág. 67)
figure; [x1, y1] = ptc(0, 0, 1); [x2, y2] = ptc(0.5, 0.5, 1.5); patch(x1, y1, 'y') patch(x2, y2, 'g') axis off

control del contorno (pág. 67)
figure; [x1, y1] = ptc(0, 0, 1); [x2, y2] = ptc(0.5, 0.5, 1.5); patch(x1, y1, 'y', 'EdgeColor', 'b','LineWidth', 2.5, 'FaceVertexAlphaData', 0.6, 'FaceAlpha', 'Flat') patch(x2, y2, 'g', 'EdgeColor', 'r', 'LineWidth', 3.5) axis off

Letras griegas, símbolos matemáticos, subíndices y superíndices (pág. 71)
figure; Om1 = linspace(1, 2); beta = 3; plot(Om1, cos(4*pi*Om1).*exp(-(1+Om1.^beta)), 'k') title('\itg_{\rm2} \rmversus \Omega_1 para \it\beta \rm= 3') ylabel('\itg_{\rm2}') xlabel('\Omega_1') text(1.2, 0.08, '\itg_{\rm2}\rm=cos(\Omega_1)\ite^{\rm-(1+\Omega_1^{\it\beta\rm})}')

modificación de atributos de ejes, curvas y texto (pág. 81)
figure; x = linspace(0, 6, 100); plot(x, cos(x), 'k-', x, 1./cosh(x), 'k--', [4.73, 4.73], [-1, 1], 'k') xlabel('x') ylabel('Amplitud') title('Visualizacion de interseccion de dos curvas') text(4.8, -0.1, 'x = 4.73') [a, b] = legend('cos(\itx\rm)', '1/cosh(\itx\rm)', 'Location','SouthWest'); set(a(1), 'LineWidth', 2, 'Color', 'y') set(b(1), 'fontsize', 14, 'Color', 'b') set(b(2), 'fontsize', 14, 'Color', 'r')

modificación de atributos de ejes, curvas y texto (pág. 84)
figure; x = linspace(0, 6,100); hc = plot(x, cos(x), 'k-'); hold on hch = plot(x, 1./cosh(x), 'k--'); hsl = plot( [4.73, 4.73], [-1, 1], 'k'); [a, b] = legend('cos(x) ', '1/cosh(x) ', 'Location', 'SouthWest'); xlabel('\it\bfx', 'FontSize', 14, 'FontName', 'Times') ylabel('Valor de funciones', 'FontSize', 14) title('\bfVisualizacion de interseccion de dos curvas', 'FontName', 'Courier', 'FontSize', 14) text(4.8, -0.1, '\itx \rm= 4.73','FontName', 'Times', 'FontSize', 12) set(hc, 'LineWidth', 4) set(hch, 'LineWidth', 2.5) set(hsl, 'LineWidth', 0.25, 'Color', 'g') set(gca, 'FontSize', 14, 'LineWidth', 1.5) set(b(1), 'FontSize', 10)

inserción de un gráfico dentro de otro (pág. 90)
figure; k = 1:200; alph = 0.4; xi = 0.1; Omo = 0.03*sqrt(2); N = 400; HOm = inline('1./sqrt((1-(Om*k).^2).^2+(2*xi*Om*k).^2)', 'k', 'Om', 'xi'); tau = linspace(-50, 120, N); sn = sin(pi*k*alph)./(pi*k*alph); thn = atan2(2*xi*Omo*k, (1-(Omo*k).^2)); psi = atan2(sn, 0); cnt = sin(Omo*k'*tau-repmat(thn', 1, N)+repmat(psi', 1, N)); z = alph*(1+2*abs(sn).*HOm(k, Omo, xi)*cnt); plot(tau, z, 'k-') a = axis; a(1) = -50; a(2) = 120; axis(a) xlabel('\tau') ylabel('x(\tau)') axes('Position', [0.62, 0.62, 0.25, 0.25]) semilogy(k*Omo, HOm(k, Omo, xi), 'k-') ylabel('H(\Omega)') xlabel('\Omega') box off

Ejemplo de Animación (pág. 100)
figure; n = 40; phi = linspace(0, 2*pi, n); a = 1; b = 2.5; e = 0.25; nF = 5; c = 0.5; d = 1; f = 0.06; ax = a*cos(phi); ay = a*sin(phi); s = real(ax+sqrt(b^2-(ay-e).^2)); v = [1.1*min(ax), 1.1*(max(s)+d/2) 1.1*min(ay), 1.1*max(ay)]; xgnd = [min(ax), max(s)+d/2, max(s)+d/2, min(ax), min(ax)]; ygnd = [e, e, e-f, e-f, e]; slidery = [e, e+c, e+c, e, e]; % Vertical component of slider vi=VideoWriter('Manivela.avi'); open(vi); for k=1:n fill(xgnd, ygnd, 'r') % Barra horizontal hold on plot(ax, ay, 'b--', 0, 0, 'ko'); % circulo punteado y centro de circulo sliderx = [s(k)-d/2, s(k)-d/2, s(k)+d/2, s(k)+d/2, s(k)-d/2]; fill(sliderx, slidery, 'm'); % posicion slider plot([0 ax(k)], [0;ay(k)], 'ko-', 'LineWidth', 2); plot([ax(k), s(k)], [ay(k), e+c/2], 'ko-', 'LineWidth', 2); axis(v) axis off equal ManivelaFrame(k) = getframe; writeVideo(vi, ManivelaFrame(k)); hold off end movie(ManivelaFrame, nF, 30) close(vi);

gráfico en coordenadas polares (pág. 105)
figure;
theta = linspace(-pi/2, pi/2, 300);
p = abs(besselj(1, 6*pi*theta)./(6*pi*theta));
polar(theta, p/max(p))
axis([-.02, 0.15, -0.05, 0.05]) % Right hand figure

Dibujo de cajas de alambres (pág. 9)
Matlab_graficos3D.pdf
figure; BoxPlot3(1, 1, 1, 3, 5, 7) BoxPlot3(4, 6, 8, 4, 5, 1) BoxPlot3(8, 11, 9, 1, 1, 1)

Onda senoidal sobre una superficie de un cilindro (pág. 10)
figure; t = linspace(0, 2*pi, 200); a = 10; b = 1.0; c = 0.3; x = b*cos(t); y = b*sin(t); z = c*cos(a*t); plot3(x, y, z, 'k') axis equal

Ejemplos de superficies con surf y mesh (pág. 13)
figure; [x,y,z] = SurfExample; surf(x, y, z)

Ejemplos de superficies con surf y mesh (pág. 13)
figure; [x,y,z] = SurfExample; mesh(x, y, z)

Ejemplos de superficies con surf y mesh (pág. 13)
figure;
[x,y,z] = SurfExample;
mesh(x, y, z)
hidden off

combinando superficies y líneas (pág. 17)
function Corners xc = [-3, -3, 3, 3]; yc = [-3, 13, 13, -3]; zc = xc.^4+3*xc.^2-2*xc+6-2*yc.*xc.^2+yc.^2-2*yc; plot3([xc; xc], [yc; yc], [zeros(1,4); zc], 'k')
figure; Corners

combinando superficies y líneas (pág. 18)
figure; Disc(10,2)

combinando superficies y líneas (pág. 19)
figure; [x, y, z] = SurfExample; surf(x, y, z); Disc(10, 80) Corners

modificación de la apariencia de gráficos (pág. 21)
figure;
[x,y,z] = SurfExample;
mesh(x, y, z);
grid off

modificación de la apariencia de gráficos (pág. 21)
figure; [x,y,z] = SurfExample; mesh(x, y, z); axis off grid off

modificación de la apariencia de gráficos (pág. 22)
figure; [x,y,z] = SurfExample; mesh(x, y, z); axis on grid off box on

funciones adicionales para mejorar visualmente una superficie (pág. 24)
figure; [x,y,z] = SurfExample; meshz(x, y, z)

funciones adicionales para mejorar visualmente una superficie (pág. 24)
figure; [x,y,z] = SurfExample; waterfall(x, y, z)

funciones adicionales para mejorar visualmente una superficie (pág. 25)
figure; [x,y,z] = SurfExample; ribbon(y, z)

funciones adicionales para mejorar visualmente una superficie (pág. 25)
figure; [x,y,z] = SurfExample; surfnorm(x, y, z)

Ejemplo de gráficos de contornos (pág. 27)
figure;
[x,y,z] = SurfExample;
meshc(x, y, z)
grid off

Ejemplo de gráficos de contornos (pág. 27)
figure;
[x,y,z] = SurfExample;
surfc(x, y, z)
grid off

Ejemplo de contour (pág. 30)
figure; [x,y,z] = SurfExample; contour(x, y, z)

Ejemplo de contour (pág. 30)
figure; [x,y,z] = SurfExample; contour(x, y, z, 4)

Ejemplo de contour y clabel (pág. 31)
figure; [x,y,z] = SurfExample; [C, h] = contour(x, y, z); clabel(C, h)

Ejemplo de contour y clabel (pág. 31)
figure; [x,y,z] = SurfExample; v= [10, 30:30:120]; [C, h] = contour(x, y, z, v); clabel(C, h, v)

Ejemplo de contour3, contourf y colorbar (pág. 34)
figure; [x,y,z] = SurfExample; [C, h] = contour3(x, y, z); clabel(C, h)

Ejemplo de contour3, contourf y colorbar (pág. 34)
figure; [x,y,z] = SurfExample; [C, h] = contourf(x, y, z); colorbar

Ejemplo de superficie cilíndrica (pág. 37)
figure;
zz = linspace(0, 2*pi, 26);
[x, y, z] = cylinder(1.1+sin(zz), 16);
surf(x, y, z)
axis off

Superficies cilíndricas, esféricas y elipsoidales (pág. 39)
figure;
[x, y, z] = sphere;
axis equal
surf(x, y, z)

Superficies cilíndricas, esféricas y elipsoidales (pág. 40)
figure;
[x, y, z] = ellipsoid(0,0,0,5.9,3.25,3.25,30);
figure
surf(x, y, z)
axis equal


Ejemplo de view y shading (pág. 44)
figure; zz = linspace(0, 2*pi, 26); r=1.1+sin(zz); [x, y, z] = cylinder(r, 16); surf(x, y, z) view(-88.5, -48) shading faceted axis off vis3d

Ejemplo de view y shading (pág. 45)
figure; zz = linspace(0, 2*pi, 26); r=1.1+sin(zz); [x, y, z] = cylinder(r, 16); surf(x, y, z) view(-88.5, -48) shading flat axis off vis3d

Ejemplo de view y shading (pág. 46)
figure; zz = linspace(0, 2*pi, 26); r=1.1+sin(zz); [x, y, z] = cylinder(r, 16); surf(x, y, z) view(-88.5, -48) shading interp axis off vis3d

Ejemplo de view y shading (pág. 47)
figure; r = 1+sin(zz); [x, y, z] = cylinder(r, 16); surf(x, y, z) view(-88.5,-48) view(-88.5,-48) shading interp colormap(copper) axis off vis3d

Ejemplo de transparencia (pág. 50)
function [x, y, z] = Transparency a = 1.13; b = 1.14; uu = linspace(0, 2*pi, 30); uu = linspace(0, 2*pi, 30); vv = linspace(-15, 6, 45); [u, v] = meshgrid(uu, vv); x = a.^v.*cos(v).*(1+cos(u)); y = -a.^v.*sin(v).*(1+cos(u)); z = -b*a.^v.*(1+sin(u));
figure; [x, y, z] = Transparency; surf(x, y, z) shading interp axis vis3d off equal view([-35 38])

Ejemplo de transparencia (pág. 50)
figure; [x, y, z] = Transparency; h = surf(x, y, z); set(h, 'FaceAlpha', 0.4) shading interp axis vis3d off equal view([-35 38])

Ejemplo de transparencia (pág. 51)
figure; [x, y, z] = Transparency; h = surf(x, y, z); set(h, 'FaceAlpha', 0.4) axis vis3d off equal view([-35 38])

Ejemplo coloreado de cajas (pág. 54)
function BoxPlot3C(xo, yo, zo, Lx, Ly, Lz, w) % w = 0, wire frame; w = 1, rectangles are colored x = [xo xo xo xo xo+Lx xo+Lx xo+Lx xo+Lx]; y = [yo yo yo+Ly yo+Ly yo yo yo+Ly yo+Ly]; z = [zo zo+Lz zo+Lz zo zo zo+Lz zo+Lz zo ]; index = zeros(6,5); index(1,:) = [1 2 3 4 1]; index(2,:) = [5 6 7 8 5]; index(3,:) = [1 2 6 5 1]; index(4,:) = [4 3 7 8 4]; index(5,:) = [2 6 7 3 2]; index(6,:) = [1 5 8 4 1]; c = 'rgbcmy'; for k = 1:6 if w~=0 fill3(x(index(k,:)), y(index(k,:)), z(index(k,:)), c(k)) else plot3(x(index(k,:)), y(index(k,:)), z(index(k,:))) end hold on end
figure; BoxPlot3C(1, 1, 1, 3, 5, 7, 1) BoxPlot3C(4, 6, 8, 4, 5, 1, 0) BoxPlot3C(8, 11, 9, 1, 1, 1, 1)

Ejemplo: intersección de un cilindro y una esfera y resaltado de su intersección (pág. 57)
figure; a = 1; [xs, ys, zs] = sphere(30); surf(2*a*xs, 2*a*ys, 2*a*zs) hold on [x, y, z] = cylinder; surf(a*x+a, a*y, 4*a*z-2*a) surf(a*x+a, a*y, 4*a*z-2*a) shading interp t = linspace(0, 4*pi, 100); x = a*(1+cos(t)); y = a*sin(t); z = 2*a*sin(t/2); plot3(x, y, z, 'y-', 'Linewidth', 2.5); axis equal off view([45, 30])

Ejemplo: mejora de gráficos 2D con objetos 3D (pág. 58-59)
figure; b = [0.5, 1]; c = b; for k = 1:2 plot(b, b*c(k), 'k-') text(0.75, (b(1)*c(k)+b(2)*c(k))/2-0.02, ['c/a = ' num2str(c(k))]) hold on end xlabel('b/a'); ylabel('V') for k = 1:4 switch k case 1 axes('position', [0.12, 0.2, 0.2, 0.2]) [xs, ys, zs] = ellipsoid(0, 0, 0, 1, b(1), c(1), 20); mesh(xs, ys, zs) text(0, 0, 1, ['b/a = ' num2str(b(1)) ' c/a = ' num2str(c(1))]) case 2 axes ('position', [0.1, 0.5, 0.2, 0.2]) [xs, ys, zs] = ellipsoid(0, 0, 0, 1, b(1), c(2), 20); mesh (xs, ys, zs) text (0, 0, 1.5, ['b/a = ' num2str(b(1)) ' c/a = ' num2str(c(2))]) case 3 axes ('position', [0.7, 0.65, 0.2, 0.2]) [xs, ys, zs] = ellipsoid(0, 0, 0, 1, b(2), c(2), 20); mesh (xs, ys, zs) text (-1.5, 0, 2, ['b/a = ' num2str(b(2)) ' c/a = ' num2str(c(2))]) case 4 axes ('position', [0.7, 0.38, 0.2, 0.2]) [xs, ys, zs] = ellipsoid(0, 0, 0, 1, b(2), c(1), 20); mesh (xs, ys, zs) text (-1.5, 0, 1.5, ['b/a = ' num2str(b(2)) ' c/a = ' num2str(c(1))]) end colormap([0 0 0]) axis equal off end

Rotación y traslación de objetos 3D: generación de Toro (pág. 68)
figure; [X, Y, Z] = Torus(0.2, 0.8); psi = [0, pi/3, pi/3]; chi = [0, 0, 0]; phi = [pi/3,0, pi/3]; Lx = 0; Ly = 0; Lz = 0; for k = 1:4 subplot(2,2,k) if k==1 mesh(X, Y, Z) else mesh(X, Y, Z) hold on [Xr Yr Zr] = EulerAngles(psi(k-1), chi(k-1),phi(k-1), Lx, Ly, Lz, X, Y, Z); mesh(Xr, Yr, Zr) end switch k case 1 text(0.5, -0.5, 1, 'Torus') case 2 text(0.5, -0.5, 1,'\phi = 60\circ') case 3 text(0.5,-0.5,1,'\psi = 60\circ') text(0.5,-0.5,1,'\psi = 60\circ') case 4 text(0.5, -0.5, 1.35,'\psi = 60\circ') text(0.55, -0.5, 1,'\phi = 60\circ') end colormap([0 0 0]) axis equal off grid off end
