We have an exciting announcement about badges coming in May 2025. Until then, we will temporarily stop issuing new badges for course completions and certifications. However, all completions will be recorded and fulfilled after May 2025.
Photonics – Chinese

Photonics – Chinese

Topics related to Lumerical and more, in Chinese language.

Ansys Insight: Matlab画图失真问题

    • Guilin Sun
      Ansys Employee
      问题: 为什么用软件直接作图(例如光强度随位置的分布)看起来正常,而将数据倒入Mtalb再画就失真了呢?
      答案: 如果整个仿真区用均匀网格,两款软件作图是一样的。但是,由于Lumerical软件使用了高级的自适应网格,网格不再均匀,Matlab 画出来就失真了。 这是因为两款软件作图方法不同:
       
      Lumerical软件直接用的是仿真时的空间网格点,因此画出来时是真实、正确的;而Matlab是取坐标的最大和最小值然后再计算出均匀网格,因此失真。当然其好处是不需要记录每一个坐标点,节约了一些内存。
      解决此问题的方法是,在用Script 取出数据后,先将它们通过插值转换为均匀坐标,然后再保存为Matalb数据或直接调用Matlab作图。 例如,用script得到坐标x,y:
      E2=getelectric(“monitor”);#获得强度分布
      x=getdata(“monitor”,“x”)
      y=getdata(“monitor”,“y”);
      mx=100;#matlab中的x点数
      my=50; #matlab中的y点数
      xmatlab=linspace(min(x),max(x),mx);
      ymatlab=linspace(min(y),max(y),my);
      E2matlab=interp(E2,x,y,xmatlab,ymatlab);#插值为均匀网格
       
      matlabput(E2matlab,xmatlab,ymatlab);#送入matlab工作空间
      matlab(" image(xmatlab,ymatlab,E2matlab); ")
       
      可以与用脚本作图的结果作比较,看看两者是否一致。
Viewing 0 reply threads
  • The topic ‘Ansys Insight: Matlab画图失真问题’ is closed to new replies.