Function handle doesn't work as intended
    8 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Karsten Gros
 el 15 de Jun. de 2017
  
    
    
    
    
    Comentada: Karsten Gros
 el 28 de Jun. de 2017
            Hi, I have a question regarding my matlab-code. Basically, the code should calculate the heat-transfer for drop-wise condensation. At the end of the program, I should have a funvtion with deltaT as variable parameter. But the error-message basically says that .* can't be used with function handles. I attached the file, so if anyone is willing to help me, you would make me very happy :) Any ideas how I could get the program fixed? Thanks in advance and best regards, Karsten
2 comentarios
  James Tursa
      
      
 el 15 de Jun. de 2017
				Please copy and paste the entire error message so we know which exact line is causing the problem and which exact error message MATLAB is giving you.
  Karsten Gros
 el 15 de Jun. de 2017
				
      Editada: James Tursa
      
      
 el 15 de Jun. de 2017
  
			
		Respuesta aceptada
  Walter Roberson
      
      
 el 15 de Jun. de 2017
        Q = @(r, deltaT) pi.*r.^2.*(deltaT-(2.*T_sat.*sigma)./(H_fg.*r.*rho_l)).*((1+cos(Theta)./(2.*h_i)+delta./(lamda_coat.*sin(Theta).^2)+(r.*Theta)./(4.*lamda_l.*sin(Theta)))).^(-1)
needs to be
Q = @(r, deltaT) pi.*r.^2.*(deltaT-(2.*T_sat.*sigma)./(H_fg.*r.*rho_l)).*((1+cos(Theta)./(2.*h_i(deltaT))+delta./(lamda_coat.*sin(Theta).^2)+(r.*Theta)./(4.*lamda_l.*sin(Theta)))).^(-1)
4 comentarios
  Walter Roberson
      
      
 el 17 de Jun. de 2017
				When that change is made, that error message disappears, leaving you with other error messages.
- You use delta_T twice in one of the lines, instead of deltaT
 - You use r once in a line where r has not been defined; it appears that should be r_c which is used multiple times on that line
 - You call upon ln() instead of log() . That is not an uncommon error -- and yet when I research I have been unable to find any major programming language that calls it ln()
 
Revised code attached. I have no idea if the correct value is calculated.
  James Tursa
      
      
 el 19 de Jun. de 2017
				Not a "major programming language", but MS Excel uses ln() for natural log.
Más respuestas (2)
  James Tursa
      
      
 el 15 de Jun. de 2017
        Just quickly looking though what was posted, this line:
grid onq_tot2 = @(deltaT) integral(@(r) stopp(r), r_c, r_max)
looks like it should be two separate lines:
grid on
q_tot2 = @(deltaT) integral(@(r) stopp(r), r_c, r_max)
0 comentarios
  Karsten Gros
 el 19 de Jun. de 2017
        
      Editada: Karsten Gros
 el 19 de Jun. de 2017
  
      8 comentarios
  Walter Roberson
      
      
 el 28 de Jun. de 2017
				No, you have not defined dT for that last line. Is there a reason you changed it from
q_tot = @(deltaT) q_tot1(deltaT)+q_tot2(deltaT);
Variable names do NOT need to match in the calling function and the called function! Variable names need to be consistent within any one function.
Ver también
Categorías
				Más información sobre Graphics Object Properties en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!