标题:这个MATLAB代码错在哪儿?为何不能运行啊???!!!
只看楼主
千斤顶
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-10-12
 问题点数:0 回复次数:5 
这个MATLAB代码错在哪儿?为何不能运行啊???!!!
function y=Fn(x,p)
x(1)=x;
for i=1:100
if (x(i)>=0&x<p)
    y(i)=x(i)/p;
elseif(x(i)>=p&x(i)<0.5)
    y(i)=(x(i)-p)/(0.5-p);
elseif(x(i)>=0.5&x(i)<1)
     y(i)=Fn(1-x(i),p);
end
x(i+1)=y(i);
i=i+1;
end
plot(y);
%注意:x是在0到1之间的,p是在0到0.5之间的!!
搜索更多相关主题的帖子: MATLAB 代码 运行 
2008-10-12 19:01
hitzhang
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:21
帖 子:369
专家分:52
注 册:2006-9-24
得分:0 
function y=Fn(x,p)
x(1)=x;
for i=1:100
if (x(i)>=0&x<p)
    y(i)=x(i)/p;
elseif(x(i)>=p&x(i)<0.5)
    y(i)=(x(i)-p)/(0.5-p);
elseif(x(i)>=0.5&x(i)<1)
     y(i)=Fn(1-x(i),p);
end
x(i+1)=y(i);
i=i+1;%%%%%%%%%%%%%%%%%%%%%%这句不要!
end
plot(y);

2008-10-12 20:43
千斤顶
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-10-12
得分:0 
忘了,这句是多余的。可是去掉这句后还是不能运行啊?matlab显示如下代码:
???  Index exceeds matrix dimensions.

Error in ==> F:\MATLAB6.0\work\Fn.m
On line 11  ==> x(i+1)=y(i);

Error in ==> F:\MATLAB6.0\work\Fn.m
On line 9  ==>      y(i)=Fn(1-x(i),p);

Error in ==> F:\MATLAB6.0\work\Fn.m
On line 9  ==>      y(i)=Fn(1-x(i),p);

Error in ==> F:\MATLAB6.0\work\Fnn.m
On line 9  ==>      y(i)=Fn(1-x(i),p);
2008-10-12 21:20
shiyuwtog
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-9-12
得分:0 
没有错误。但是你的x有大小为101,但y的只有100.
画图的时候没有错误!
2008-10-12 22:39
千斤顶
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-10-12
得分:0 
可是不知为何总是不能运行
2008-10-12 23:09
hitzhang
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:21
帖 子:369
专家分:52
注 册:2006-9-24
得分:0 
function y=Fn(x,p)
x(1)=x;y=[];
for i=1:100
if ((x(i)>=0)&&(x<p))
    y=x(i)/p;
elseif((x(i)>=p)&&(x(i)<0.5))
    y=(x(i)-p)/(0.5-p)
elseif((x(i)>=0.5)&&(x(i)<=1))
     yy=Fn(1-x(i),p)
     y=yy(i);
end
x(i+1)=y;
end
y=x(2:end);
plot(y);

2008-10-14 23:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-237833-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.887773 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved