Forward differencing, error when plotting u(x_i)!
1 次查看(过去 30 天)
显示 更早的评论
Guys,
I know this must be a reallllly trivial error, but I seriously cannot see what is going on. I am purely plotting 100 elements against another 100 elements and I am getting the following error:
??? Subscript indices must either be real positive integers or logicals.
Error in ==> Test at 22 plot(x,u);
The code I am using is below (would really appreciate some help in this because it's driving me crazy; usually i am good at debugging!):
function Test(n,f,length_check,plot)
% Create grid:
x_min = 1;
x_max = 11;
dx = (x_max - x_min)/(n-1);
x(1) = x_min;
for i = 1:(n-1);
x(i+1) = x(i) + dx;
end
x(n) = [];
% Compute u(x):
i = 1:(n-1);
u(i)= f(x(i));
if (length(x)==length(u));
'Vector lengths agree'
end
%figure;
length(x)
length(u)
plot(x,u);
axis([0,12,-0.1,0.4]);
xlabel('x'); ylabel('u');
grid on;
CHEERS FOR THE HELP GUYS!
Andrew.
2 个评论
the cyclist
2011-10-23
It would be helpful if you used the "Code" button to format your code into a more readable form.
the cyclist
2011-10-23
Also, it looks like you haven't defined "n" or the function "f" for us, so I don't think we can run your code to look for errors.
采纳的回答
Jan
2011-10-23
??? Subscript indices must either be real positive integers or logicals.
Error in ==> Test at 22 plot(x,u);
The you have defined a variable called "plot". You can check this by using the debugger:
dbstop if error
Then start your program until it stops at the error. Now user this to check the type of "plot":
which plot
whos plot
Solution: Do not use names of builtin functions for variables.
2 个评论
Jan
2011-10-23
You do not have to apologize. Simple edit the original question, mark the code and press the "{} code" button. I've done this for you this time.
更多回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Computational Fluid Dynamics (CFD) 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!