Help with Plotting Data & Function in Matlab

Click For Summary

Discussion Overview

The discussion revolves around plotting data and functions in MATLAB, specifically addressing a homework problem where the user is struggling to correctly plot their data due to mismatched array lengths and syntax issues. Participants provide guidance on how to resolve these plotting issues and improve the user's understanding of MATLAB.

Discussion Character

  • Homework-related
  • Technical explanation
  • Conceptual clarification

Main Points Raised

  • One participant notes that the user's time array (t) has more elements than the data array (Q), which prevents MATLAB from pairing them for plotting.
  • Another participant suggests using the length function to ensure that both arrays are of the same size before plotting.
  • The user expresses uncertainty about their plotting approach and whether they are using the linspace function correctly to generate values for their Q function.
  • Several participants provide tips on enhancing the plot's appearance, including adding labels and titles, and correcting the syntax for the exponential function in MATLAB.
  • One participant encourages the user to search for solutions online when encountering errors, highlighting the wealth of resources available in MATLAB forums.

Areas of Agreement / Disagreement

There is no consensus on the correctness of the user's plotting approach, as they express uncertainty about their results. Multiple suggestions are provided, but the discussion remains unresolved regarding the user's specific implementation.

Contextual Notes

The discussion highlights potential limitations in the user's understanding of MATLAB syntax and array manipulation, as well as the need for clarification on how to properly use functions like linspace.

Who May Find This Useful

This discussion may be useful for students learning MATLAB, particularly those encountering issues with data plotting and array management in their homework assignments.

jdawg
Messages
366
Reaction score
2

Homework Statement


I'm a little lost on how to plot this data and function. I included the homework question and my attempt at plotting in the attached picture. I'm pretty sure what I have is completely wrong and I honestly don't have much of an understanding of matlab, so the more you dumb it down the better. Any help is greatly appreciated! :)

Homework Equations

The Attempt at a Solution

 

Attachments

  • matlabhw1.png
    matlabhw1.png
    57.6 KB · Views: 538
  • matlab_question.png
    matlab_question.png
    8.8 KB · Views: 515
Physics news on Phys.org
Your t array has more elements than your Q array and so MATLAB can't pair them together for an (x,y) point to plot.

As an example:

Matlab:
x=[0:1:10]
y=x.*x
plot(x,y)

produces two vectors ##x## and ##y## where ##y=x^2## and so the plot(x,y) draws a simple parabola.

In your case, MATLAB can't match up each value in t with one in Q and hence issues the error message you got.

Ask yourself why does t have a different length from Q? Isn't Q dependent on t somehow?

Here's the definition of linspace which may be the source of your problem:

http://www.mathworks.com/help/matlab/ref/linspace.html?s_tid=gn_loc_drop

Notice you used a 3 argument version where you want to create a vector t from 0 to 10 and you want 100 points and that's what you got but the Q is only eight points.

So one solution is to modify the linspace arguments.
 
  • Like
Likes   Reactions: jdawg
You can use the length function to evaluate vector lengths.
Then make sure they are the same size
 
  • Like
Likes   Reactions: jdawg
Ok, I tried changing a few things and managed to get a plot to come up, but I'm not super confident that its right. I was thinking that I was supposed to use linspace somehow to plug t values into my q function and then plot the actual Q and t vectors as data points on the same graph.. I hope that makes sense.

Or could I just say something like plot q and then somehow add the Q and T vectors onto the same plot as data points?

Also, did I type the q function correctly? Matlab keeps giving me errors when I try to run it.
 

Attachments

  • mlab2.png
    mlab2.png
    34.4 KB · Views: 500
jdawg said:
Ok, I tried changing a few things and managed to get a plot to come up, but I'm not super confident that its right. I was thinking that I was supposed to use linspace somehow to plug t values into my q function and then plot the actual Q and t vectors as data points on the same graph.. I hope that makes sense.

Or could I just say something like plot q and then somehow add the Q and T vectors onto the same plot as data points?

Also, did I type the q function correctly? Matlab keeps giving me errors when I try to run it.

A few things...
1. that plot looks correct.
2. you can use the following commands to make your plot look better
xlabel('string');
ylabel('string');
title('string')
legend('plot1','plot2',...)

3. exp is a function, get rid of the ^
exp(stuff) will execute the math function e^stuff

4. just do this

plot( t , vector1 , t , vector2 );
 
  • Like
Likes   Reactions: jdawg
jdawg said:
Ok, I tried changing a few things and managed to get a plot to come up, but I'm not super confident that its right. I was thinking that I was supposed to use linspace somehow to plug t values into my q function and then plot the actual Q and t vectors as data points on the same graph.. I hope that makes sense.

Or could I just say something like plot q and then somehow add the Q and T vectors onto the same plot as data points?

Also, did I type the q function correctly? Matlab keeps giving me errors when I try to run it.
in general the MATLAB forums are VERY good.

when you get an error, just toss it in google.
when you want to say plot two vectors, type "matlab plot two vectors" into google. You'll be surprised by what has already been answered and the guides mathworks have put together.
 
  • Like
Likes   Reactions: jdawg
You were so much help! Thanks a bunch!
 

Similar threads

  • · Replies 10 ·
Replies
10
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 14 ·
Replies
14
Views
9K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 1 ·
Replies
1
Views
3K