Subscripted assignment dimension mismatch - Help
Show older comments
Hello everybody i have been trying to code a 1D wave problem using the Leap Frog Scheme but i am running into an error that i am not familiar with. Any suggestions?
freq = 1; % Hz
omega = 2*pi*freq; % angular speed m/s
c = 10; % m/s
amp = 1;
% Space
dx = 0.001;
xmax = 1; % domain of unit length
lambda = 0.05; % size of wave
k = 2*pi/lambda; % wavenumber
x = 0:dx:xmax;
Vx = length(x); % matrix of propagation in the x direction
u_0 = zeros(size(x));
% defining wave initial conditions
for i = 1:Vx;
if x(i) < lambda;
u_0(i) = (1 - cos(k*x(i)))*0.5;
else
break
end
end
%Time
dt = 0.01;
t = 0:dt:1;
Vt = length(t);
figure(1)
plot(x,u_0,'.-b');
axis([0 lambda 0 1])
phi = zeros(Vx,Vt);
for n = 1:Vx;
phi(1,i) = u_0(i);
phi(2,i) = u_0(i);
end
for i = 2:Vt
for n = 2:Vx-1
phi(i,n+1) = phi(i,n-1) + (u_0*(dt/dx))*(phi(i+1,n) - phi(i-1,n)/phi(i,n-1));
end
end
Accepted Answer
More Answers (1)
Walter Roberson
on 12 Apr 2011
In your line
phi(i,n+1) = phi(i,n-1) + (u_0*(dt/dx))*(phi(i+1,n) - phi(i-1,n)/phi(i,n-1));
u_0 is a vector, so the right hand side is going to have a vector result, which you then try to store in to a single memory location.
Perhaps your right hand side should use u_0(i) ?
Categories
Find more on Calendar 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!