How to make a video from comet(x, y) command?

3 ビュー (過去 30 日間)
N/A
N/A 2023 年 11 月 6 日
回答済み: Walter Roberson 2024 年 1 月 2 日
I am trying to record a movie using the comet(x, y) command. To record a movie I use the following commands:
drawnow
movieVector(k) = getframe(gcf);
these are inside a lopp and:
v = VideoWriter('L3 Orbits', 'MPEG-4');
v.FrameRate = 100;
open(v);
writeVideo(v, movieVector)
close(v);
which are outside of the loop.
The issue is I need to capture more frames than just one frame per trajectory. I don't know how to do this.

採用された回答

Walter Roberson
Walter Roberson 2024 年 1 月 2 日
You cannot do this while using comet() . comet() does not return until all of the drawing is complete .
These days comet() is implemented in terms of animatedLine() and addpoints() and drawnow() . That is probably the same strategy you should use to create the movie.

その他の回答 (1 件)

Balaji
Balaji 2023 年 11 月 7 日
Hi Mark,
To capture more frames per trajectory when recording a movie using the `comet` command in MATLAB, you can modify your code as follows:
v = VideoWriter('L3 Orbits', 'MPEG-4');
v.FrameRate = 100;
open(v);
for k = 1:numTrajectories
comet(x, y);
numFramesPerTrajectory = 100;
movieVector = struct('cdata', cell(1, numFramesPerTrajectory), 'colormap', cell(1, numFramesPerTrajectory));
for frame = 1:numFramesPerTrajectory
drawnow;
movieVector(frame) = getframe(gcf);
end
writeVideo(v, movieVector);
end
close(v);
Thanks,
Balaji
  2 件のコメント
N/A
N/A 2023 年 11 月 7 日
I still do not get a video output.
I've attached the main script 'Comet_Plot.m' and the supporting function files: 'pcr3bp.m', 'trajGet3BP.m', and 'Rotation_Rot2Iner.m'.
Balaji
Balaji 2024 年 1 月 2 日
Please insert the following line of code after the `movie_vector` has finished updating, at line 109 in `Comet_Plot.m`:
writeVideo(v, movieVector);

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

カテゴリ

Help Center および File ExchangeOrange についてさらに検索

タグ

製品


リリース

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by