confusing error message: 'Not enough input arguments'?
    4 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    Valeri Aronov
 il 24 Feb 2021
  
    
    
    
    
    Modificato: Valeri Aronov
 il 27 Feb 2021
            Having:
function [f] = Simple(x)
f = (x(1)-1).^2  + (x(2)-1).^2;
end
and running:
x = lsqnonlin(Simple, [2.0, 2.0])
I am getting:
Not enough input arguments.
Error in Simple (line 2)
f = (x(1)-1).^2  + (x(2)-1).^2;
2   f = (x(1)-1).^2  + (x(2)-1).^2;
 What is going on here?
2 Commenti
Risposta accettata
  Star Strider
      
      
 il 24 Feb 2021
        With a function in that format, it is necessary to pass a function handle to lsqnonlin (or any other function that takes a function handle argument): 
x = lsqnonlin(@Simple, [2.0, 2.0])
That is not the situation for anonymous functions that are already function handle objects: 
Simple = @(x) (x(1)-1).^2  + (x(2)-1).^2;
x = lsqnonlin(Simple, [2.0, 2.0])
producing: 
x =
   1.000244655961070   1.000244655961070
.
0 Commenti
Più risposte (0)
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

