Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-08-26, 22:13   #1
ruanruan
初级会员
 
注册日期: 2008-06-01
年龄: 42
帖子: 23
声望力: 17
ruanruan 正向着好的方向发展
默认 [求助]奇怪的小问题!!

小程序1:
for i=1:1024
x(1,n)=i;
end
程序正常,得到一个矩阵,元素为1-1024
小程序2:
for i=0:0.001:1.023
n=i*1000+1;
x(1,n)=i*1000;
end
程序运行到i=0.009的时候提示“??? Subscript indices must either be real positive integers or logicals.”,为什么不能同样得到0-1023的矩阵?
请高手帮忙解答一下这个小问题!!:lovely: :lovely:
ruanruan 当前离线   回复时引用此帖
旧 2008-08-26, 22:57   #2
pslpsl
普通会员
 
注册日期: 2008-08-17
年龄: 36
帖子: 70
声望力: 20
pslpsl 是一个将要出名的人pslpsl 是一个将要出名的人
默认 回复: [求助]奇怪的小问题!!

数据类型的问题 在x(1,n)里 n必须是整数 :

for i=0:0.001:1.023
n=floor(i*1000+1);
x(1,n)=[i*1000];
end
pslpsl 当前离线   回复时引用此帖
旧 2008-08-29, 23:20   #3
remnant
普通会员
 
注册日期: 2008-04-12
年龄: 46
帖子: 67
声望力: 19
remnant 正向着好的方向发展
默认 回复: [求助]奇怪的小问题!!

引用:
作者: pslpsl 查看帖子
数据类型的问题 在x(1,n)里 n必须是整数 :

for i=0:0.001:1.023
n=floor(i*1000+1);
x(1,n)=[i*1000];
end
你这里用floor肯定会在32位计算机上出错。
不信你去试试, n != 1:1024。
floor(x)函数是将x向负无穷方向舍入。
floor( 3.999999999 ) = 3,你写的是无法得到楼主预期得到的结果的。

按楼主的意思来看,应该用round而非floor。
remnant 当前离线   回复时引用此帖
旧 2008-08-27, 09:06   #4
ruanruan
初级会员
 
注册日期: 2008-06-01
年龄: 42
帖子: 23
声望力: 17
ruanruan 正向着好的方向发展
默认 回复: [求助]奇怪的小问题!!

楼上的解答真是好,但是我不明白为什么要加floor?按照程序算出来的好像也是整数啊?
ruanruan 当前离线   回复时引用此帖
旧 2008-08-30, 15:05   #5
yingmuhaha
初级会员
 
注册日期: 2008-08-05
年龄: 26
帖子: 21
声望力: 17
yingmuhaha 正向着好的方向发展
默认 回复: [求助]奇怪的小问题!!

引用:
作者: ruanruan 查看帖子
楼上的解答真是好,但是我不明白为什么要加floor?按照程序算出来的好像也是整数啊?
是取整的问题,楼主自己运行一下,n隔几位出现实数类型,有小数点,虽然后面是.00。
至于为什么就不知道了。一般也没必要。

还有向哪个方向取整对于这个问题,在matlab上运行无关紧要。
yingmuhaha 当前离线   回复时引用此帖
旧 2008-09-02, 15:31   #6
mathjiang
高级会员
 
注册日期: 2008-01-02
帖子: 247
声望力: 22
mathjiang 正向着好的方向发展
默认 回复: [求助]奇怪的小问题!!

for i=1:1024
x(1,n)=i;
end
这一段循环明明不能运行(n的值不明确),楼主怎么得到结果的?
mathjiang 当前离线   回复时引用此帖
旧 2008-09-04, 09:58   #7
hitzhjtopku
普通会员
 
注册日期: 2008-08-19
年龄: 40
帖子: 34
声望力: 17
hitzhjtopku 正向着好的方向发展
默认 回复: [求助]奇怪的小问题!!

你的n也没变化啊
hitzhjtopku 当前离线   回复时引用此帖
旧 2008-09-09, 11:25   #8
coolboy_dsf
初级会员
 
注册日期: 2008-05-24
年龄: 43
帖子: 1
声望力: 0
coolboy_dsf 正向着好的方向发展
默认 回复: [求助]奇怪的小问题!!

看那意思,改成
for i=1:1024
x(1,i)=i;
end
就行了,没必要纠缠!:tongue:
coolboy_dsf 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 07:34


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.