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!