查看: 2686|回复: 7|关注: 0

[已解决] MATLAB如何在时间循环里输出图像

[复制链接]

新手

7 麦片

财富积分


050


2

主题

4

帖子

0

最佳答案
本帖最后由 大墩子 于 2017-12-23 10:43 编辑

现在在学习用MATLAB实现时域有限差分。简单来说就是随着时间步的递进,会计算出整个计算区域各个方向的电磁场。我现在想在时间循环中输出空间中一个定点的场量与时间的关系图,但是我输出的图坐标轴一直在变化,图像上又没有数据点。我是个新手,求大家解答,拜托拜托    %***********************************************************************
    %     Visualize fields可视化区域
    %***********************************************************************
    plot(n,ez(is,js,ks),'k');                     %n是循环的时间变量,ez(is,js,ks)是某一定点的z方向的电场数值
    grid
    xlabel('n')
    ylabel('Ez(is,js,ks)')







MATLAB 基础讨论
版块优秀回答者

入门

176 麦片

财富积分


50500


2

主题

211

帖子

22

最佳答案
  • 关注者: 4
发表于 2017-12-16 23:02:59 | 显示全部楼层
  1. %     Visualize fields可视化区域
  2.     %***********************************************************************
  3.    figure
  4.     plot(n,ez(is,js,ks),'k');
  5.     grid
  6.     xlabel('n')
  7.     ylabel('Ez(is,js,ks)')

  8.     pause(0.05)

  9. end
复制代码

在plot上一行加个figure就行

新手

7 麦片

财富积分


050


2

主题

4

帖子

0

最佳答案
 楼主| 发表于 2017-12-17 13:15:57 | 显示全部楼层
风之子儿 发表于 2017-12-16 23:02
在plot上一行加个figure就行

大佬您好,首先谢谢您的解答。
我按照您的指示改完之后,不断滚动的坐标轴的问题解决了,但是一共出现了100个figure(一共有100个时间步),依然看不到数据点。  
我想得到在循环里实现时间步与某一定点的场量(在文中即为ez(iis,js,ks)这个量)二者的关系图。求大佬指教,不胜感激。

MATLAB 基础讨论
版块优秀回答者

入门

176 麦片

财富积分


50500


2

主题

211

帖子

22

最佳答案
  • 关注者: 4
发表于 2017-12-17 14:00:35 | 显示全部楼层
大墩子 发表于 2017-12-17 13:15
大佬您好,首先谢谢您的解答。
我按照您的指示改完之后,不断滚动的坐标轴的问题解决了,但是一共出现了1 ...

在plot下加个hold on
若还不行,试试用view。另外问下:你要的是不是在一张图里点再随时间变化。如果是那就是gif图了。

MATLAB 基础讨论
版块优秀回答者

入门

176 麦片

财富积分


50500


2

主题

211

帖子

22

最佳答案
  • 关注者: 4
发表于 2017-12-17 16:40:01 | 显示全部楼层 |此回复为最佳答案
风之子儿 发表于 2017-12-17 14:00
在plot下加个hold on
若还不行,试试用view。另外问下:你要的是不是在一张图里点再随时间变化。如果是那 ...
  1. plot(n,ez(is,js,ks),'*b');
  2.     hold on
  3.     grid
  4.     xlabel('n')
  5.     ylabel('Ez(is,js,ks)')

  6.     pause(0.05)
  7.     filename = 'testAnimated.gif';
  8. %view(i,90);
  9. %pause(0.0001)
  10. drawnow
  11. frame = getframe(1);
  12. im = frame2im(frame);
  13. [A,map] = rgb2ind(im,256);
  14.     if n==1
  15.                 imwrite(A,map,filename,'gif','LoopCount',Inf,'DelayTime',0.1);
  16.     else
  17.                 imwrite(A,map,filename,'gif','WriteMode','append','DelayTime',0.1);
  18.     end
  19. end
复制代码

我稍微加了点东西,不知道是不是你想要的。毕竟不知道你要什么啊,只能瞎掰了。
怎么表达很重要啊。拜了,这个问题我认为差不多了。还有什么问题,自己多看看帮助文档。

MATLAB 基础讨论
版块优秀回答者

入门

176 麦片

财富积分


50500


2

主题

211

帖子

22

最佳答案
  • 关注者: 4
发表于 2017-12-17 16:43:38 | 显示全部楼层
风之子儿 发表于 2017-12-17 16:40
我稍微加了点东西,不知道是不是你想要的。毕竟不知道你要什么啊,只能瞎掰了。
怎么表达很重要啊。拜了 ...

可以了,哦了。

忘上传效果图了,还好不大。

忘上传效果图了,还好不大。

新手

7 麦片

财富积分


050


2

主题

4

帖子

0

最佳答案
 楼主| 发表于 2017-12-18 09:31:51 | 显示全部楼层
本帖最后由 大墩子 于 2017-12-18 10:03 编辑

谢谢谢谢,就是这样了,谢谢大佬。什么时候才能像你一样优秀,我可能是个傻子了。。。

新手

12 麦片

财富积分


050


2

主题

10

帖子

0

最佳答案
发表于 2017-12-18 15:07:20 | 显示全部楼层
学习了,mark一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表