Matlab Plots

  • Thread starter FlvD
  • Start date
  • #1
4
0

Homework Statement


Hello all, I'm new to PF..Pls help..
I'm stuck in the following query.

I've matlab commands as follows:

Hv=[1,2,3,4,5]
for i=1:5
tspan=[1 30]
h0=Hv(i)
[t,h]=ode45[expression]
plot(t,h)
end

And here i need to see induvidual plots of my 5 results..I donno to save and then plot. Pls help.



Homework Equations





The Attempt at a Solution

 

Answers and Replies

  • #2
28
0
Hello.

First of all, when putting code in the posts, there's a nifty little command of ['code']insertcodehere[/'code'] that you can use that really tidies things up (without the apostrophes of course). So it'd look like this:

Code:
Hv=[1,2,3,4,5]
for i=1:5
tspan=[1 30]
h0=Hv(i)
[t,h]=ode45[expression]
plot(t,h)
end
Okay, so I'm not exactly sure what you're asking... but first of all, are you getting any errors? What is your output right now? It's difficult to help without knowing the expression you're putting into the ode solver.

However, if this helps there are some commands that could help you "save and plot results." One is the subplot command. Look into using your iteration variable (i) to move to the next subplot. Or you could simply have the figure number be dependent on i as well.

So something like:

Code:
figure(1)
Hv=[1,2,3,4,5]
for i=1:5
tspan=[1 30]
h0=Hv(i)
[t,h]=ode45[expression]

subplot(5,1,i)
plot(t,h)
end
Like I said, let me know if I'm not addressing your question, as I'm a bit unsure as to what you're asking.
 
  • #3
uart
Science Advisor
2,776
9
Hi Flvd, you need to put all of your "h" vector solutions into a single matrix if you want a single plot command to plot them all simultaneously. The ":" syntax is really useful here. For example, if h is a row vector then "y(k,:) = h" sets "h" as the whole k-th row of the y matrix.

So you need something like this :

Code:
Hv=[1,2,3,4,5]
tspan=[1 30]               % No need to put this in the loop

for k=1:5                  % Best to leave "i" as pre-defined constant = sqrt(-1)
  h0 = Hv(k)
  [t,h] = ode45[expression] % Presumably "expression" includes the function an init conditions
  y(k,:)=h
end                         % You need to end the for loop here

plot(t,y)
 

Related Threads on Matlab Plots

  • Last Post
Replies
5
Views
2K
  • Last Post
Replies
1
Views
870
  • Last Post
Replies
1
Views
1K
  • Last Post
Replies
10
Views
10K
  • Last Post
Replies
1
Views
9K
  • Last Post
Replies
6
Views
659
  • Last Post
Replies
1
Views
2K
  • Last Post
Replies
1
Views
564
  • Last Post
Replies
5
Views
23K
  • Last Post
Replies
4
Views
562
Top