Error message when using plot command: "Subscript indices must either be real positive integers or logicals"
Ältere Kommentare anzeigen
I am having an issue when I run this code:
x = linspace(0,1,7);
yprimeexact = -2*x.*exp(-x.^2);
yprimeapprox = [-1.3264656E-02 -0.3154821 -0.5814109 -0.7609767 -0.8383472 -0.8199028 -0.7577648];
plot(x,yprimeexact,'b')
hold on
plot(x,yprimeapprox,'r')
When I try to plot the data, I get an error message saying, "Subscript indices must either be real positive integers or logicals." Do you know what is wrong? Thank you in advance!
1 Kommentar
dpb
am 10 Okt. 2013
Looks like you've inadvertently created an array named plot earlier...
clear plot
then try again. If that doesn't cure it, do
which plot
and post it and the full error in context but I suspect it will...
Antworten (2)
Wayne King
am 10 Okt. 2013
The above code should execute properly Kelsey. Perhaps you have a variable named linspace() in your workspace?
If you execute
>>who linspace
do you get something back, like "Your variables are"
If so try
>> clearvars linspace
and try again. Worse case, just clear everything and copy and paste the above code back into the workspace, it should work.
4 Kommentare
Kelsey
am 10 Okt. 2013
dpb
am 10 Okt. 2013
Post the full error and the source in context--we can't see your command window from here
Perhaps also post the output of
whos
after you've done a clear and tried again and had the same problem.
If, of course, it still happens there's always the case of exiting Matlab completely and starting over to see if perhaps Matlab has gotten internally confused...
Sean de Wolski
am 10 Okt. 2013
Could also be a shadowed plot.m function which inside does indexes into x or similar.
dpb
am 10 Okt. 2013
which was my first suggestion of likely cause but seems if OP really did what says did (and didn't do the wrong thing again right after which we can't see) should've gone away.
But, then again, if is running a script that has the problematic line in it and we're not seeing that, then it's quite possible that the problem gets fixed at the command line then runs the script that has the error and makes the problem all over again-- ad nauseum, so to speak... :)
Sean de Wolski
am 10 Okt. 2013
Run:
dbstop if error
At the command line.
Then run the above code. It will stop with the debugger on the offending line and you will be able to see which function (e.g. exp, plot, linspace has a variable named after it or another function shadowing the builtin one.
Kategorien
Mehr zu Logical finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!