想要求comsol中仿真的模型的散射场,想对入射场与全场分别取点画出散点图,同时将全场值减去入射场得到散射场绘图。
首先,将comsol与matlab进行关联。
取点值函数mphinterp
‘
clc
clear
%% 加载comsol模型
model = mphload(‘3.mph’);
%mphnavigator
%mphplot(model,‘pg1’)
A=zeros(62500,3);
p=0;
for i=-340:2:160
for j=-abs(sqrt((250250)-((i+90)(i+90)))):2:abs(sqrt((250250)-((i+90)(i+90))))
p=p+1;
Qht= mphinterp(model,‘emw.Ex’,‘coord’,[36.5;i;j])%取特定点的电场值
A(p,1)=Qht;
A(p,2)=i;
A(p,3)=j;
end
end
x=A(:,2);y=A(:,3);C=A(:,1);
`
通过程序分别均匀取出全场与入射场中固定点数的电场值,相减得出散射场进行绘图。
’
clc
clear
S=10
cell2mat(struct2cell(load(‘全场.mat’)))
B=ans
cell2mat(struct2cell(load(‘入射场.mat’)))
A=ans
z=A(:,1);x=A(:,2);y=A(:,3);z=real(z);
m=B(:,1);n=B(:,2