如何将此脚本转换为函数

时间:2018-04-15 11:03:06

标签: matlab function

我是Matlab或任何类型的编程语言的新手,我试图把这个脚本变成一个函数我希望函数返回x和u(x,t),我尝试过不同的方法但是情节不像在脚本上那样工作

7

1 个答案:

答案 0 :(得分:0)

一种方法如下:

1.首先,创建一个应根据您的函数名称命名的新文件。在我的情况下,我选择了名称' func'但它应该更具指示性:

function [ x,u ] = func(xmin,xmax,N,dt,t,v)

dx=(xmax-xmin)/N;
x=xmin-dx : dx : xmax+dx;

u0=exp(-200*(x-0.25).^2);
u=u0;
unpl=u0;


while t < 1.0
    u(1)=u(3);
    u(N+3)=u(N+1);

    for i=2 : N+2
        unpl(i)=u(i)-v*(dt/dx)*(u(i)-u(i-1));
    end

    t=t+dt;
    u=unpl;

    plot(x,u,'bo-','markerfacecolor','b')
    hold on
    hold off
    xlabel('x','fontsize',16)
    ylabel('u(t,x)','fontsize',16)
    title(sprintf('time=%1.3f',t),'fontsize',16)
    shg
    pause(dt);
end

end

2.可以按如下方式调用此函数:

xmin=0;
xmax=1;
N=100;
dt=0.009;
t=0;
v=1;
[ x,u ] = func(xmin,xmax,N,dt,t,v);