![]()  | 
	
		
 [求助]奇怪的小问题!! 
		
		
		小程序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:  | 
		
 回复: [求助]奇怪的小问题!! 
		
		
		数据类型的问题 在x(1,n)里  n必须是整数 : 
	for i=0:0.001:1.023 n=floor(i*1000+1); x(1,n)=[i*1000]; end  | 
		
 回复: [求助]奇怪的小问题!! 
		
		
		楼上的解答真是好,但是我不明白为什么要加floor?按照程序算出来的好像也是整数啊? 
	 | 
		
 回复: [求助]奇怪的小问题!! 
		
		
		[QUOTE=pslpsl;15124]数据类型的问题 在x(1,n)里  n必须是整数 : 
	for i=0:0.001:1.023 n=floor(i*1000+1); x(1,n)=[i*1000]; end[/QUOTE] 你这里用floor肯定会在32位计算机上出错。 不信你去试试, n != 1:1024。 floor(x)函数是将x向负无穷方向舍入。 floor( 3.999999999 ) = 3,你写的是无法得到楼主预期得到的结果的。 按楼主的意思来看,应该用round而非floor。  | 
		
 回复: [求助]奇怪的小问题!! 
		
		
		[QUOTE=ruanruan;15127]楼上的解答真是好,但是我不明白为什么要加floor?按照程序算出来的好像也是整数啊?[/QUOTE] 
	是取整的问题,楼主自己运行一下,n隔几位出现实数类型,有小数点,虽然后面是.00。 至于为什么就不知道了。一般也没必要。 还有向哪个方向取整对于这个问题,在matlab上运行无关紧要。  | 
		
 回复: [求助]奇怪的小问题!! 
		
		
		for i=1:1024 
	x(1,n)=i; end 这一段循环明明不能运行(n的值不明确),楼主怎么得到结果的?  | 
		
 回复: [求助]奇怪的小问题!! 
		
		
		你的n也没变化啊 
	 | 
		
 回复: [求助]奇怪的小问题!! 
		
		
		看那意思,改成 
	for i=1:1024 x(1,i)=i; end 就行了,没必要纠缠!:tongue:  | 
| 所有时间均为北京时间。现在的时间是 17:16。 | 
	Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.