How to use this code
edit
- Make a folder called MatlabSnippets
- Copy and paste the code listed in ==plot2D== in to a filename.m file.
- Read and modify your copy as you wish
- To test a code snippet either run the code and select a section number or copy and paste the snippet into your own code.
- If you are using Matlab, it helps to maximize the command window. (The code also works with Octave)
%%%Basic graphing in MATLAB%%%%
clc;clear all;close all; %Always begin with these statements
fprintf('This code is divided into sections (1,2,3 ...)\n' );
%*fprintf* prints to command window. /n makes new line.
sectionNumber= input('Enter the section you wish to run: ');
%*input* prompts user to input an integer (1, 2, 3, ...)
% The code will run only that section.
switch(sectionNumber)
%*switch* executes only the part of the code identified
% by one or more *case* statement. Each the code for each case
% statement may be copied and pasted as a stand-alone code
case 1
fprintf('Plot with optional title and axis labels \n');
x = linspace(-1,2); %creates 100 points between -1 and 2
y = x.^2+1; %Note the . before the ^, needed because x is an array
plot(x,y); %Creates line plot
title('This is case 1'); %This line is optional
xlabel('the x axis (obviously)') %This line is also optional
ylabel('and this is the y axis')%This line is also optional
% If you want more or fewer than 100 points replace linspace(a,b)
% by linspace(a,b,n), for example linspace(-1,2,500) would have
% created a finer plot with 500 points.
% To make a scatter plot use plot(x,y,'*') or plot(x,y,'+')
% to get different marker styles (many other marker options
% are possible).
case 2
fprintf(' plot two items on one graph \n');
x = -2:0.1:2; %Plot points between -2 and +2 incremented by 0.1
yA = x.^2; %The . before the ^ is needed because x is an array
yB = x.^3; %The second set to be ploted
plot(x,yA,x,yB);
grid; %puts a grid on the final graph
case 3
fprintf('Three functions plotted on two graphs \n');
%two plot sinusoials of different frequency on one graph
t =0:0.001:2; %Observe the wave for two seconds
fprintf('If the frequency is larger than 20 there might ');
fprintf('be too few data points per oscillation \n'); %\n is linefeed
f1=input('Enter the frequency of the first wave: ');
f2=input('Enter the frequency of the second wave: ');
omega1=2*pi*f1; % angular frequency is easier to plot
omega2=2*pi*f2;
psi1=sin(omega1*t);%psi is a common symbol for wave amplitude
psi2=sin(omega2*t);
figure % Is this needed?
subplot(2,1,1) % (2 rows, 1 column, plot 1)
plot(t,psi1,t,psi2);%plots both
subplot(2,1,2) % (2 rows, 1 column, plot 2)
plot(t,psi1+psi2);%plots both
otherwise % executes if no case includes *sectionNumber*
fprintf('No such section exists\n' );
end
fprintf('To run this code again type *plot2D*\n' );