%%%% ECE-210-B HW 4 - Functions and Objects % James Ryan, 02/21/24 % preamble close all; clear; clc; %% My Sinc Is Broken % (1) % see deriv.m x = linspace(-5, 5, 1e3); sinc_x = sinc(x); deriv_sinc = deriv(sinc_x, x); % see antideriv.m % approximates an integral of a given function using `cumtrapz` int_sinc = antideriv(sinc_x, x); % (2) % see switchsign.m % (3) [extrema_sinc_x, extrema_x] = extrema(sinc_x, x); [inflect_sinc_x, inflect_x] = inflections(sinc_x, x); % (4) figure; plot(x, sinc_x, x, int_sinc, x, deriv_sinc, ... extrema_x, extrema_sinc_x, 'r*', ... inflect_x, inflect_sinc_x, 'bo'); ylim([-2 2.45]); xlim([-5, 5]); ylabel("y-axis"); xlabel("x-axis"); grid on; title( {'y = sinc(x) plotted over 1000 evenly spaced pts between x \epsilon [-5,5]', ... 'Plotted alongside its first derivative and antiderivative.'}); legend( 'y = sinc(x)',"$\int [sinc(x)] dx$",'$\frac{d}{dx} [sinc(x)]$', ... 'Points of Extrema', 'Inflection Points', ... "Interpreter","latex"); % <+.02> this is a very pretty legend. %% Objectification % (1) % Matlab Classic Noteworthy Logo (TM) (C) (Not-for-individual-sale) L = 160*membrane(1,100); f = figure; ax = axes; s = surface(L); s.EdgeColor = 'none'; view(3) ax.XLim = [1 201]; ax.YLim = [1 201]; ax.ZLim = [-53.4 160]; ax.CameraPosition = [-145.5 -229.7 283.6]; ax.CameraTarget = [77.4 60.2 63.9]; ax.CameraUpVector = [0 0 1]; ax.CameraViewAngle = 36.7; ax.Position = [0 0 1 1]; ax.DataAspectRatio = [1 1 .9]; l1 = light; l1.Position = [160 400 80]; l1.Style = 'local'; l1.Color = [0 0.8 0.8]; l2 = light; % l2 = l1; l2.Position = [.5 -1 .4]; l2.Color = [0.8 0.8 0]; s.FaceColor = [0.9 0.2 0.2]; s.FaceLighting = 'gouraud'; s.AmbientStrength = 0.3; s.DiffuseStrength = 0.6; s.BackFaceLighting = 'lit'; s.SpecularStrength = 1; s.SpecularColorReflectance = 1; s.SpecularExponent = 7; axis off f.Color = 'black'; % (2) % Copyobj is not cooperating. Time to be lazy! % Matlab FOR MS-DOS! Noteworthy Logo (TM) (C) (Not-for-individual-sale) disk_operating_system = 2; L_disk_operating_system = disk_operating_system .* L; f_dupe = figure; ax_dupe = axes; s_dupe = surface(L_disk_operating_system); s_dupe.EdgeColor = 'none'; view(3) ax_dupe.XLim = disk_operating_system .* [1 201]; ax_dupe.YLim = disk_operating_system .* [1 201]; ax_dupe.ZLim = disk_operating_system .* [-53.4 160]; ax_dupe.CameraPosition = disk_operating_system .* [-145.5 -229.7 283.6]; ax_dupe.CameraTarget = disk_operating_system .* [77.4 60.2 63.9]; ax_dupe.CameraUpVector = [0 0 1]; ax_dupe.CameraViewAngle = 36.7; ax_dupe.Position = [0 0 1 1]; ax_dupe.DataAspectRatio = [1 1 .9]; l3 = light; l3.Position = [160 400 80]; l3.Style = 'local'; l3.Color = [0 0.8 0.8]; l4 = light; % l2 = l1; l4.Position = [.5 -1 .4]; l4.Color = [0.8 0.8 0]; s_dupe.FaceColor = [0.9 0.2 0.2]; s_dupe.FaceLighting = 'gouraud'; s_dupe.AmbientStrength = 0.3; s_dupe.DiffuseStrength = 0.6; s_dupe.BackFaceLighting = 'lit'; s_dupe.SpecularStrength = 1; s_dupe.SpecularColorReflectance = 1; s_dupe.SpecularExponent = 7; axis off f_dupe.Color = 'black'; % James's Changes % Change one - light at the origin! l4.Position = [0 0 0]; l4.Color = [1 1 1]; % This made the logo significantly more purple! % Change two - colormap colormap winter; % I didnt really notice a change with this one. % Change three - function s_dupe.FaceLighting = 'flat'; % I changed the surface! It has different face lighting. Thats changing % the function, right? % It helped emphasize the purple-maroon which possesses the shape at the moment % Change four - backround f_dupe.Color = 'red'; % Hard to miss - the entire background is now red! % (3) f_both = figure; % Matlab ax_former = subplot(1,2,1); copyobj(ax.Children, ax_former); title('Matlab '); ax_former.XLim = [1 201]; ax_former.YLim = [1 201]; ax_former.ZLim = [-53.4 160]; ax_former.XTick = []; ax_former.YTick = []; ax_former.ZTick = []; ax_former.CameraPosition = [-145.5 -229.7 283.6]; ax_former.CameraTarget = [77.4 60.2 63.9]; ax_former.CameraUpVector = [0 0 1]; ax_former.CameraViewAngle = 36.7; l5 = light; l5.Position = [160 400 80]; l5.Style = 'local'; l5.Color = [0 0.8 0.8]; l6 = light; % l2 = l1; l6.Position = [.5 -1 .4]; l6.Color = [0.8 0.8 0]; % James Plot Matlab for DOS ax_latter = subplot(1,2,2); copyobj(ax_dupe.Children, ax_latter); title('Conspicuous Copycat'); % <+.02> MATLAB for DOS lol % disk operating system, or DOS, is 2 for short :) ax_latter.XLim = disk_operating_system .* [1 201]; ax_latter.YLim = disk_operating_system .* [1 201]; ax_latter.ZLim = disk_operating_system .* [-53.4 160]; ax_latter.XTick = []; ax_latter.YTick = []; ax_latter.ZTick = []; ax_latter.CameraPosition = disk_operating_system .* [-145.5 -229.7 283.6]; ax_latter.CameraTarget = disk_operating_system .* [77.4 60.2 63.9]; ax_latter.CameraUpVector = [0 0 1]; ax_latter.CameraViewAngle = 36.7; l7 = light; l7.Position = [160 400 80]; l7.Style = 'local'; l7.Color = [0 0.8 0.8]; l8 = light; % l2 = l1; l8.Position = [.5 -1 .4]; l8.Color = [0.8 0.8 0]; f_both.Color = 'green'; % James's Changes % Change one - light at the origin! l8.Position = [0 0 0]; l8.Color = [1 1 1]; % This made the logo significantly more purple! % (4) %get(f) f.PaperOrientation = 'landscape'; f.PaperType = 'a4'; f.PaperUnits = 'centimeters'; % My figure now is configured to print in Europe! And its sideways. % <+.01> lmao, incredible