フィルターのクリア

Error message when using plot command: "Subscript indices must either be real positive integers or logicals"

4 ビュー (過去 30 日間)
Kelsey
Kelsey 2013 年 10 月 10 日
コメント済み: dpb 2013 年 10 月 10 日
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 件のコメント
dpb
dpb 2013 年 10 月 10 日
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...

サインインしてコメントする。

回答 (2 件)

Wayne King
Wayne King 2013 年 10 月 10 日
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 件のコメント
Sean de Wolski
Sean de Wolski 2013 年 10 月 10 日
Could also be a shadowed plot.m function which inside does indexes into x or similar.
dpb
dpb 2013 年 10 月 10 日
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
Sean de Wolski 2013 年 10 月 10 日
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.

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by