Matlab数据导入画图失真问题


#1

为什么用软件直接作图(例如光强度随位置的分布)看起来正常,而将数据倒入Mtalb再画就失真了呢?


使用FDTD画图导出来的数据再用matlab画发现不一致
偏振态矢量,如何导出用matlab重画?
如何使用Matlab, Lumerical Script 与Matlab的集成
关于数据的类型(属性)
天线远场辐射的三维方向图
场分布Magnitude是怎么定义的?
#2

如果整个仿真区用均匀网格,两款软件作图是一样的。但是,由于我们软件使用了高级的自适应网格,网格不再均匀,Matlab 画出来就失真了。 这是因为两款软件作图方法不同:
我们软件直接用的是仿真时的空间网格点,因此画出来时真实、正确的;而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);
”)


DEVICE导入的产生率文件有什么限制?
Mode Solutions 模拟结果怎样提高分辨率
#3

孙老师,您好,上面两行代码运行的时候必须要将matlab打开是么?
最后一行代码是直接在fdtd里面运行的么?


#4

用OriginLab来做图也可以的,效果比matlab要好一些


Visualizer图像和view data中数据行列排放不一致
#5

matlabput不需要打开matlab;
但是,matlab(“image(xmatlab,ymatlab,E2matlab);”)需要,因为双引号里面的是matlab的命令,必须有该软件才可以顺利运行,否则将报错。不过,你写它的目的不就是想使用它吗?


#6

明白了,谢谢孙老师!


#7

Hi @XLiu,

这两句语句运行的时候是会自动打开Matlab的。但是还需要补充注意的是,如果你想使用Matlab Integration的话,要先确保这个性能是active的。这个status可以在"Help"中查看,请参照下面的链接:

Matlab script integration

希望对你有所帮助 :slight_smile:


#8

孙老师,为什么我运行这个matlabput的时候提示语法错误啊?书写没问题啊?pingban10000.fsp (1.5 MB)
untitled.lsf (724 Bytes)


#9

估计是那两个井号是全角,出问题了。我删除后工作正常。kx220.lsf (674 字节)
此帖子将关闭。


#10