24小时热门版块排行榜    

查看: 182  |  回复: 2
当前主题已经存档。

蓝的蓝

木虫 (正式写手)

[交流] 【求助】各位高手帮忙看下这个程序

for i=0.1:0.1:1
p(10*i)=i;
end
我运行后的结果是[0.1,0.2],而且提示说:??? Subscript indices must either be real positive integers or logicals.请问这是怎么回事啊?谢谢了

[ Last edited by woshilsh on 2009-2-18 at 23:38 ]
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dnp

荣誉版主 (知名作家)

小木虫浪子

优秀版主

★ ★ ★ ★ ★ ★ ★
woshilsh(金币+4,VIP+0):感谢帮助,呵呵,牛年快乐 2-18 23:39
蓝的蓝(金币+3,VIP+0):谢谢 2-19 08:17
在你运行的过程中,10*i这个指示下标的值会发生变化,原来是整型的变量会变成double型的变量,从而在matlab中运行的时候会导致matlab不认其为符合语法的下标,我通过运行了下命令如下的命令:
i = 0.1:0.1:10

10*i

得到的结果:

1.0000    2.0000    3.0000    4.0000    5.0000    6.0000    7.0000    8.0000    9.0000

   10.0000

所有的结果中都是double型的,而matlab要求作为下标的变量是要用整型的变量,因此会导致以上错误;

但是其实为什么在i=0.1及0.2的时候matlab计算10*i这个值会得到整型的下标,但是当i>=0.3时却无法得到整型的值,这个是什么原因我也不大清楚;

不过如果你的命令如下就没有问题了:
for i=0.1:0.1:1
p(round(10*i)) = i;
end

matlab还真麻烦呵~~
What would Jesus do?
2楼2009-02-18 22:36:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sunxiao

荣誉版主 (著名写手)

小木虫钓鱼协会会长

学到不少,谢谢
西南交大隧道方向招硕、博士
3楼2009-02-19 02:12:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 蓝的蓝 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见