作业帮 > 综合 > 作业

matlab遇到一个非常诡异的问题

来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/05/02 06:35:57
matlab遇到一个非常诡异的问题
我用matlab用的挺熟的,今天运到一个很诡异的问题,不知道怎么回事,我把问题归结为一个简单的例子,
for i=1:1:5
a(i)=1;
end
这个语句没问题,得到的a就是[1,1,1,1,1],利用a(0.3*10)访问a(3)是没问题的
但是如下语句:
for i=0.1:0.1:0.5
a(i*10)=1;
end
我在matlab上运行过,却出现了?Attempted to access a(3); index must be a positive integer or logical.给出的提出错误,真是让我百思不得其解
matlab遇到一个非常诡异的问题
for i=0.1:0.1:0.5
a(round(i*10))=1;
end
也就是说不要因为精度等原因出现索引号为非整数的情况.
Good luck!
再问: 如果用a(0.3*10)没问题,用a(0.1*3*10)出问题,真奇怪
再答: 那你还是用round函数或floor、ceil等函数时括号内确保为整数。你大概也不想一个个试吧。这是数据类型引起的。
再问: 谢谢,我也是这么理解的现在,有一个matlab内部处理选择精度的问题
再答: 高精度选double,毕竟占用字长大吗。