查看: 2731|回复: 3|关注: 0

[已答复] 用eval函数遇到报错,错误提示索引超出数组范围,出错 sym/subsref (line 859) R_tilde = builtin('subsref',L_tilde,Idx);

[复制链接]

新手

5 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
发表于 2019-3-26 15:41:16 | 显示全部楼层 |阅读模式
想要用INTLAB工具箱实现一个小功能,把区间的上下界形式改成中点和半径的形式,比如x=[1,5],现在想用我的代码把x变成x=3+2m,其中m=[-1,1],3是区间的中点,2是区间的半径。因为要变的比较多,所以编了一个for循环,代码如下
  1. syms m1 m2 m3;
  2. x1=infsup(19300,19500),x2=infsup(2500,2700),x3=infsup(7750,7950);
  3. for i=1:3
  4. s=num2str(i)
  5. eval(['xu',s,'=inf(x',s,')'])
  6. eval(['xv',s,'=sup(x',s,')'])
  7. eval(['y',s,'=(xu',s,'+xv',s,')/2+m',s,'(xv',s,'-xu',s,')/2']);
  8. end
复制代码
infsup是工具箱里的输入区间的函数,inf是提取区间下界,sup是提取区间上界,但是不知道为什么运行之后提示
  1. 索引超出数组范围。
  2. 出错 sym/subsref (line 859)
  3.             R_tilde = builtin('subsref',L_tilde,Idx);
复制代码
前两个eval函数可以运行, 微信图片_20190326153945.png 但是执行第三个eval的时候就提示索引超出数组范围,怎么回事啊,请教各位大神!

新手

5 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
 楼主| 发表于 2019-3-27 17:29:47 | 显示全部楼层
有大神吗?:'(:'(:'(

新手

5 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
 楼主| 发表于 2019-3-28 22:30:45 | 显示全部楼层
顶一下顶一下

新手

5 麦片

财富积分


050


1

主题

6

帖子

0

最佳答案
发表于 2019-12-2 21:39:34 | 显示全部楼层
楼主,您好,请问您是如何在MATLAB中安装intlab的呢,您能不能给我发一份安装包呢,邮箱:934988497@qq.com
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表