| Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) | 
![]()  | 
	
| 		
			
			 | 
		#1 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2008-06-17 
				
				年龄: 43 
				
					帖子: 12
				 
				
				
				声望力: 18 ![]()  | 
	
	
	
		
		
			
			 
			
			一个数组,如:A=(0 0 0 0 0 3.5 4.7 0 0 0 8 0 9.0 4.5 6.5 9) 
		
		
		
		
		
		
		
	要求: 求出A中所有连续不为0的片段中,每一个数据和片段最大值的乘积,然后求该数组中上述乘积之和。 比如上式,应该求出如下值: (3.5+4.7)*max(3.5,4.7) +8*8+(9.0+4.5+6.5+9)*max(9.0, 4.5, 6.5,9) 这个算法该如何实现? 可能很简单,但我在写条件语句while或if时,总跳入死循环。 请教高手。多谢。  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#2 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2008-04-17 
				
				年龄: 43 
				
					帖子: 7
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			clear all 
		
		
		
		
		
		
		
	clc A=[0 0 0 0 0 3.5 4.7 0 0 0 8 0 9.0 4.5 6.5 9]; n=length(A); A=[A,0]; k=1; if A(1)==0; temp=[]; else temp=A(1); end for i=1:n if A(i)~=0 temp=[temp,A(i)]; if A(i+1)==0 temp_out(k)=sum(temp)*max(temp); temp=[]; k=k+1; end end end out=sum(temp_out) (3.5+4.7)*max([3.5,4.7])+8*8+(9.0+4.5+6.5+9)*max([9.0, 4.5, 6.5,9])  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#3 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2008-04-17 
				
				年龄: 43 
				
					帖子: 7
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			有点笨,希望有帮助吧。
		 
		
		
		
		
		
		
		
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
![]()  | 
	
	
| 主题工具 | |
| 显示模式 | |
		
  | 
	
		 | 
			 
			相似的主题
		 | 
	||||
| 主题 | 主题作者 | 版面 | 回复 | 最后发表 | 
| [讨论]Matlab7.1中,fread和imread命令是不是不支持*jp2格式的图片阿? | qinyonglyz | MATLAB论坛 | 0 | 2009-01-05 09:00 | 
| 如何画三维隐函数的图 | lv19860312 | MATLAB论坛 | 0 | 2008-12-16 21:31 | 
| [求助]如何用FFT从数据序列中提取相位信息? | leechau | Origin论坛 | 0 | 2008-11-05 21:50 | 
| [求助]曲线拟合的问题 | 心际依然 | MATLAB论坛 | 1 | 2008-04-29 10:21 | 
| How MATLAB Represents Pixel Colors | TechnicalArticles | MATLAB技术文章 | 0 | 2008-01-06 16:32 |