New project, new things to learn in Matlab, new problems. My previous (and first) project in Matlab led to an article which is in the peer review process now. Thanks to just 9 questions of me in this forum. Much appreciated, very much!
See attached picture made with plot3. Hold is on. It shows a highjump bar and something going over it. Hold leads to all 'frames' shown. With hold of the bar disappears and grid is invisible and axes are not fixed.
In fact I want this as a movie, with the bar, grid and axis shown and the thing moving over it. I've read and reread the documentation of getframe but seem to miss the point.
After calculation of x,y,z I do
plot3
and immediately after it
film=getframe.
But nothing happens and movie(film) does not know 'film'.
[EDITED, Jan, moved from section for answers]
Code:
while (t<2.4*ta)
.......calculation of poitns (xp,yp,zp)......
end
plot3(xp, yp, zp, 'o');
film=getframe;
t=t+dt;
end
movie(film,5)
Plot3 gives the correct picture, as attached to my previous question. But then nothing happens. Documentation says: "movie(M,N) plays the movie N times." How?

1 件のコメント

Jan
Jan 2019 年 1 月 7 日
What does "movie(film) does not know 'film'" mean? What is "nothing happens"? What do you expect to happen? What exactly is "I do plot3"? Which point do you miss? Please post some code, which reproduces your problem.

サインインしてコメントする。

 採用された回答

Jan
Jan 2019 年 1 月 7 日
編集済み: Jan 2019 年 1 月 7 日

0 投票

You create a movie with 1 frame only, because film is overwritten in each iteration. Then showing 1 frame 5 times looks like nothing is happening. Try this:
k = 0;
while (t<2.4*ta)
.......calculation of poitns (xp,yp,zp)......
end
plot3(xp, yp, zp, 'o');
k = k + 1;
drawnow; % Let Matlab update the window
% Sometimes this helps also: pause(0.02)
film(k) = getframe;
t = t+dt;
end
movie(film, 5)
By the way: This is equivalent to the example in the documentation: doc getframe -> Record Frames and Play Movie (link). Reading the documentation is recommended.

3 件のコメント

Weia Reinboud
Weia Reinboud 2019 年 1 月 7 日
It works! Thanks.
But I'm not yet ready.
I added frame 1: the highjump bar. Frame 2-end are OK but only with code:
hold on
With 'hold on' the movie contains the bar (as wanted), but also unwanted all frames of the moving thing, of course.
With 'hold off' the bar is visible for only one frame... How to hold the bar during all frames but only one frame of the flying thing?
Walter Roberson
Walter Roberson 2019 年 1 月 7 日
Use
h = plot3(xp, yp, zp, 'o');
and then after the getframe,
delete(h)
Weia Reinboud
Weia Reinboud 2019 年 1 月 7 日
Wonderful! It works and I have the movie I want. Thanks all.
Now studying the videwriter...

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeJust for fun についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by