| Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) | 
![]()  | 
	
| 		
			
			 | 
		#1 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2022-04-16 
				
				
				
					帖子: 2
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			对于x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)这个函数中的参数nonlcon,在给的例子里是如下的: 
		
		
		
		
		
		
		
	function [c,ceq] = circlecon(x) c = (x(1)-1/3)^2 + (x(2)-1/3)^2 - (1/3)^2; ceq = []; 然后引用的时候@circlecon就好了。 这里的c给了一个表达式,但是我在应用的过程中想要用求解得到的一个参数表达式,我试了以下不可以,会显示: 函数或变量 'f2' 无法识别。 出错 fifth>noncon (第 64 行) ceq=f2(xx(1),xx(2)); 出错 fmincon (第 654 行) [ctmp,ceqtmp] = feval(confcn{3},X,varargin{:}); 出错 fifth (第 61 行) xx=fmincon(objfun,xx0,A,b,Aeq,beq,lb,ub,@noncon) 请问这要怎么样解决呢?谢谢了!  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#2 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2022-04-16 
				
				
				
					帖子: 2
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			我是这样写的: 
		
		
		
		
		
		
		
	xx=fmincon(objfun,xx0,A,b,Aeq,beq,lb,ub,@noncon) function [c,ceq] = noncon(xx) c = []; ceq=f2(xx(1),xx(2)); end 其中f2是之前求解得到的参数表达式,通过matlabFunction转换后的形式。  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 |