fsolve will not work on my machine
Ältere Kommentare anzeigen
I have been trying to get fsolve to work on my personal computer. I have tried many different problems and all come out with the same error. "Error using fsolve. Too many input arguments." I have ultimately dumbed down my problem to solve to the code at the end to make sure it isn't a coding error. This code works perfectly on the school's computer but not on my own. I have checked and I do have the optimization toolbox installed. Other functions in the optimization toolbox work, such as fmincon. I have tried uninstalling and reinstalling the optimization toolbox. I have also uninstalled and reinstalled matlab. I am using version 2018b but have also tried using 2017b on my personal computer but neither work. Is there something that I am missing. This is a fairly straight forward function.
Thanks for your help.
clc;
x0=0;
x=fsolve(@test,x0);
function F=test(x)
F=2*x+1;
end
4 Kommentare
Matt J
am 3 Apr. 2019
Odd. Well, show us the result that you see when doing
>> which -all fsolve
Adam Danz
am 3 Apr. 2019
Even going back to r2006a, fsolve() has always allowed up to 3 inputs. So that rule out one possibility.
Perhaps you have a different function on your matlab path named fsolve()? To check that run this line. If you have more than 1 file named fsolve() it will appear in the output.
which fsolve -all
% C:\Program Files\MATLAB\R2018a\toolbox\optim\optim\fsolve.m
Justin Becker
am 3 Apr. 2019
Bearbeitet: Justin Becker
am 3 Apr. 2019
Nice! Either re-name the other fsolve() function or remove its path prior to calling the built-in fsolve() function.
rmpath('C:\Users\name\Documents\MATLAB\myPoorlyNamedFunctions\fsolve.m')
Antworten (1)
KALYAN ACHARJYA
am 4 Apr. 2019
Bearbeitet: KALYAN ACHARJYA
am 4 Apr. 2019
Do the following;
- Save the function named as test.m
function F=test(x)
F=2*x+1;
end
2. Call the function from different main script or command window
clc;
x0=0;
x=fsolve(@(x) test(x),x0);
There may be same function name conflict, so change the function name in all three position.
- Change function name
- Change in save Matlab file name
- During Call the function name
All must be tthe same name.
Or
As @Adam suggested to avoid the conflict the file name with inbuilt function (fsolve)

Hope it Helps!
Kategorien
Mehr zu Introduction to Installation and Licensing finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!