Clear Filters
Clear Filters

Plot u vs. t with PDEPE. "Index exceeds matrix dimensions."

1 view (last 30 days)
Hello,
I can't seem to figure out how to plot u (concentration) vs. t (time) at a specific x (distance).
function simple_time_dependent_pdepe
clear all; close all; clc;
%
D_ij = 1*10^-6; %Diffusion coefficient D (3.0*10^-7 cm^2/s -> 30 um^2/s)
L0 = 1; %c0 [nM]
x_f =0.02; %Length of domain [um]
maxt = 10; %Max simulation time [s]
%
m = 0; %Parameter corresponding to the symmetry of the problem
x = linspace(0,x_f,100); %xmesh
t = linspace(0,maxt,100); %tspan
%
sol = pdepe(m,@DiffusionPDEfun,@DiffusionICfun,@DiffusionBCfun,x,t,[]);
u = sol;
%
% Plotting
plot(t,sol(:,500),'LineWidth',2)
function [c,f,s] = DiffusionPDEfun(x,t,u,dudx)
D = D_ij;
%
%Rate constants
k_1 = 0.25;
R_L = -k_1.*u;
%
% PDE
c = 1;
f = D_ij.*dudx;
s = R_L;
end
%
function u0 = DiffusionICfun(x)
u0 = 0;
end
%
function [pl,ql,pr,qr] = DiffusionBCfun(xl,ul,xr,ur,t)
c0 = L0;
pl = ul-c0;
ql = 0;
pr = 0;
qr = 1;
end
end
I tried using
plot(t,sol(:,500),'LineWidth',2)
However, I get the error "Index exceeds matrix dimensions."
Am I missing something?
  7 Comments
Jennifer Yang
Jennifer Yang on 15 Aug 2018
I'm confused how to go about making the size the same so that I can plot sol vs. time at x = 500
Torsten
Torsten on 16 Aug 2018
plot (t,sol(:,100,1))
plots the solution over time at x(100), e.g.
Does that help ?
Best wishes
Torsten.

Sign in to comment.

Answers (0)

Categories

Find more on Line Plots in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!