在C#中把MATLAB画的显示出来,求C#混编大神!
MATLAB绘图代码:clearallN=1024*200;%采样点必须是二的指数,200表示每个抽样脉冲持续时间为200msm=1;%脉冲服从高斯分布c=0;%初始啁啾...
MATLAB 绘图代码:
clear all
N=1024*200; %采样点必须是二的指数,200表示每个抽样脉冲持续时间为200ms
m=1; %脉冲服从高斯分布
c=0; %初始啁啾系数为零
T0=5e-16;
n=10;
t=T0.*linspace(-n,n,N);
B2=0;
B3=1e-40;
gama=0e-3; %伽马代表自相位调制,一般取值1到10
fc=3e8;
P0=1/10;
frquency0=2*pi*fc/1310e-9;
Tr=0;
Ld=T0.^2/abs(B2);
Lnl=1/(gama.^P0);
h=1e3;
Ts=t(2)-t(1);
ws=2.*pi/Ts;
N1=N-1;
A1(1,:)=exp(-0.5.*(1+1i.*c).*(t./T0).^(2*m)); %此处代表脉冲的啁啾情况
LN=length(t); %传播长度函数,由前算出Ld=0.5,因此取样间距50米,取十次点
for j=2:10
hold on
A2(j-1,:)=fft(A1(j-1,1:N-1));
W(1:N1/2)=ws.*(0:N1/2-1)/N1;
W(N1/2+1:N1)=ws.*(-N1/2:-1)/N1;
D=0.5*1i.*B2.*(W.^2)-1i.*B3.*(W.^3)/6; %D算符的表达式,此处包括三阶色散参
NL=1i*gama*abs(A1(j-1,1:N-1)).^2;
A3(j-1,1:N-1)=exp(h.*D).*A2(j-1,1:N-1);
A1(j,1:N-1)=exp(h.*NL).*ifft(A3(j-1,1:N-1));
figure(1)
plot((t(1:N-1)./T0),abs(A1(j-1,1:N-1)).^2,'r');
figure(3)
plot3(t./T0,(j-2)*h*ones(1,N)/1000,abs(A1(j-1,:)).^2,'r');
end
我尝试把代码编译,MATLAB提示只能添加一个入口的程序。
现在需要把这个程序绘制的图在C#呈现出来,本人会一些C#基础,求大神指导。 展开
clear all
N=1024*200; %采样点必须是二的指数,200表示每个抽样脉冲持续时间为200ms
m=1; %脉冲服从高斯分布
c=0; %初始啁啾系数为零
T0=5e-16;
n=10;
t=T0.*linspace(-n,n,N);
B2=0;
B3=1e-40;
gama=0e-3; %伽马代表自相位调制,一般取值1到10
fc=3e8;
P0=1/10;
frquency0=2*pi*fc/1310e-9;
Tr=0;
Ld=T0.^2/abs(B2);
Lnl=1/(gama.^P0);
h=1e3;
Ts=t(2)-t(1);
ws=2.*pi/Ts;
N1=N-1;
A1(1,:)=exp(-0.5.*(1+1i.*c).*(t./T0).^(2*m)); %此处代表脉冲的啁啾情况
LN=length(t); %传播长度函数,由前算出Ld=0.5,因此取样间距50米,取十次点
for j=2:10
hold on
A2(j-1,:)=fft(A1(j-1,1:N-1));
W(1:N1/2)=ws.*(0:N1/2-1)/N1;
W(N1/2+1:N1)=ws.*(-N1/2:-1)/N1;
D=0.5*1i.*B2.*(W.^2)-1i.*B3.*(W.^3)/6; %D算符的表达式,此处包括三阶色散参
NL=1i*gama*abs(A1(j-1,1:N-1)).^2;
A3(j-1,1:N-1)=exp(h.*D).*A2(j-1,1:N-1);
A1(j,1:N-1)=exp(h.*NL).*ifft(A3(j-1,1:N-1));
figure(1)
plot((t(1:N-1)./T0),abs(A1(j-1,1:N-1)).^2,'r');
figure(3)
plot3(t./T0,(j-2)*h*ones(1,N)/1000,abs(A1(j-1,:)).^2,'r');
end
我尝试把代码编译,MATLAB提示只能添加一个入口的程序。
现在需要把这个程序绘制的图在C#呈现出来,本人会一些C#基础,求大神指导。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询