フィルターのクリア

Plotting error message

3 ビュー (過去 30 日間)
old_user_rat
old_user_rat 2012 年 4 月 6 日
Hi,
I am running this code:
y1 = 0:.01:1;
for y2=0:1/10:1;
l=1+y2*10;
t(:,l) = y1.^3./12 + (y1.^2.*y2)/4 - y1.^2./2 + (y1.*y2.^2)/4 - y1.*y2 + y1
- (7.*y2.^3)/12 + (3.*y2.^2)/2 - y2;
end
plot(y1,t)
and get this error:
Subscript indices must either be real positive integers or logicals.
However when I run this code:
y1 = 0:.01:1;
for y2=0:1/10:0.5;
l=1+y2*10;
t(:,l) = y1.^3./12 + (y1.^2.*y2)/4 - y1.^2./2 + (y1.*y2.^2)/4 - y1.*y2 + y1
- (7.*y2.^3)/12 + (3.*y2.^2)/2 - y2;
end
plot(y1,t)
There is no problem! (only difference is the 3rd line)
Can someone explain why I cannot do the first one?
Best,
David

採用された回答

Wayne King
Wayne King 2012 年 4 月 6 日
You have the line:
l=1+y2*10;
and then you try to use that to index the columns of t(), but you actually have an index not equal to an integer
l =
7.000000000000001
I'm not sure why you're trying to do here, but how about
l=1+round(y2*10);
That should enable your loop to run and produce your plot.

その他の回答 (2 件)

Walter Roberson
Walter Roberson 2012 年 4 月 6 日

old_user_rat
old_user_rat 2012 年 4 月 6 日
Thanks guys, that's clear now

カテゴリ

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