Jump to navigation Jump to search
How to use this code[edit | edit source]
- 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)
Plotting resources[edit | edit source]
plot2D[edit | edit source]
%%%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' );