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.