| Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) | 
![]()  | 
	
| 		
			
			 | 
		#1 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2008-12-09 
				
				年龄: 45 
				
					帖子: 2
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			小弟初学Matlab, 想求下面问题最优, 
		
		
		
		
		
		
		
	function f = eushibor(x) r=readshibor; n=numel(r); y=zeros(n,1); T = 250; h = 1/T; i = 1:n-1; y(i) = (-1/( 2*log(2*pi*r(i)*h*x(3)^2) ) - (r(i+1)-r(i)-x(1)*(x(2)-r(i))*h)^2/(2*x(3)^2*r(i)*h)); f = -sum(y); function r=readshibor r = xlsread('Shibor'); 由于对Matlab的一些规则还不是很晓得, 请帮忙指出问题和修改方法,多谢多谢!!  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#2 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2008-12-09 
				
				年龄: 45 
				
					帖子: 2
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			运行时总显示 Matrix must be square.
		 
		
		
		
		
		
		
		
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#3 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2009-03-20 
				
				年龄: 43 
				
					帖子: 26
				 
				
				
				声望力: 17 ![]()  | 
	
	
	
		
		
			
			 
			
			function f = eushibor(x) 
		
		
		
		
		
		
			r=readshibor; n=numel(r); y=zeros(n,1); T = 250; h = 1/T; i = 1:n-1; y(i) = (-1/( 2*log(2*pi*r(i)*h*x(3)^2) ) - (r(i+1)-r(i)-x(1)*(x(2)-r(i))*h)^2/(2*x(3)^2*r(i)*h)); f = -sum(y); function r=readshibor r = xlsread('Shibor'); 上面是你的程序 我帮你修改一下成这样的 function f = eushibor(x) r = xlsread('Shibor'); r=readshibor; n=numel(r); y=zeros(n,1); T = 250; h = 1/T; i = 1:n-1; y(i) = (-1/( 2*log(2*pi*r(i)*h*x(3)^2) ) - (r(i+1)-r(i)-x(1)*(x(2)-r(i))*h)^2/(2*x(3)^2*r(i)*h)); f = -sum(y); 一般来说,函数调用是要传递和返回参数的。你是想通过readshibor函数来打开一个excel文件,然后将其传回给eushibor函数中的r。但其实没必要这么麻烦。当然,如果你真想这么做应该是这样的 ------------------------------------eushibor.m------------------------------------------------------------------------ function f = eushibor(x) r=readshibor(); n=numel(r); y=zeros(n,1); T = 250; h = 1/T; i = 1:n-1; y(i) = (-1/( 2*log(2*pi*r(i)*h*x(3)^2) ) - (r(i+1)-r(i)-x(1)*(x(2)-r(i))*h)^2/(2*x(3)^2*r(i)*h)); f = -sum(y); -----------------------------------------readshibor.m---------------------------------------------------------- function f1=readshibor() f1=xlsread(‘Shibor’); --------------------------------------------main.m------------------------------------------------------------- x=5; y=eushibor(x); ---------------------------------------------------------------------------------------------------------------------   :ft:  
		
				__________________ 
		
		
		
		
	不到马里亚纳,不知道大海的深度 不到珠穆朗玛,不知道大山的高度 不到Labfans,不知道自己的无知  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 |