MATLAB Understanding Palm's MatLab 7 Plot Function

AI Thread Summary
The discussion revolves around solving a second-order differential equation related to a pendulum and understanding the MATLAB plotting function used in the example. The equation presented is \(\ddot{\Theta} + \frac{g}{l} \sin \Theta = 0\). The MATLAB function 'pendul' defines the system's dynamics, where 'xdot' represents the state derivatives. The example provided uses the 'ode' function to solve the pendulum's motion over a time span, generating a matrix 'xa' that contains both the angle and angular velocity at different time points. The specific use of 'xa(:,1)' in the plot function is to select all rows of the first column, which corresponds to the angle values, allowing for the angle to be plotted against time. This clarification highlights the importance of indexing in MATLAB for extracting specific data from matrices for visualization.
wildman
Messages
29
Reaction score
4
I am looking at Palm's "Introduction to MatLab 7 for Engineers" page 511. The problem involves solving a Second Order Diff Equation. The solution to the diff equation is straight forward. What I am wondering is what Plam is doing in the plot function?

\ddot{\Theta} + \frac {g} {l} sin \Theta = 0

His answer is below:

in the m file pendul:

function xdot = pendul(t,x)
global g L
xdot = [x(2); -(g/L)*sin(x(1))];

in the m file example8_6_1

global g L
g = 9.81;
L = 1;
[ta, xa] = ode('pendul', [0,5], [0.5,0]);
plot(ta,xa(:,1), xlabel('Time (s)'), ylabel('Angle(rad)')

Question:

In the plot(ta,xa(:,1) what is the (:,1)? What is he doing? And why couldn't he just put an xa without the (:,1)?
 
Physics news on Phys.org
In this example X is a vector containing [x , xdot], so the solution xa is a matrix whose rows are [x(ta), xdot(ta)] where ta changes in each row. So xa looks like
[x(t1) xdot(t1)
x(t2) xdot(t2)
x(t3) xdot(t3) ]
and so on. He wants to plot the angle x versus time, so you select the first column of the solution matrix xa. This is done by xa(:,1), where the colon : indicates that you want all of the rows, and the 1 indicates you want the first column. If you wanted to plot the angular velocity versus time you would write plot(ta,xa(:,2)). Does that make sense?
 
Thank you very much. It makes perfect sense. I will learn MATLAB yet!
 

Similar threads

Replies
8
Views
2K
Replies
1
Views
2K
Replies
5
Views
2K
Replies
2
Views
3K
Replies
4
Views
3K
Replies
3
Views
2K
Back
Top