Info
This question is locked. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.
trying to call a function from a function file in a script file
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
func = afunction; %trying to make the variable func equivalent to "afunciton",
% the function I created in the afunction file but it doesn't work :(
llim = -5;
ulim = -1;
options = optimset('Display','iter','TolX',10^-7,'Maxiter',500);
[x] = fzero(@func, [llim ulim],options);
I have a seperate function file called afunction that has the function afunction (which just has like a f(x)= ... function in it), but when I try to run this code the error says "Execution of script afunction as a function is not supported:
/Users/my name/Documents/MATLAB/afunction.m" in line 2
2 Kommentare
Stephen23
am 23 Jul. 2024
Bearbeitet: Stephen23
am 23 Jul. 2024
"but when I try to run this code the error says "Execution of script afunction as a function is not supported"
Get rid of all code outside of the function definition. Having code outside of the function definition makes it into a script, which will not work. You need to provide FZERO with a function handle, not run a script or call a function:
Do not call your function. Provide FZERO with a function handle:
x = fzero(@afunction, [llim ulim],options);
Antworten (2)
Muskan
am 23 Jul. 2024
Bearbeitet: Muskan
am 23 Jul. 2024
Hi,
As per my undersatnding the issue is because you named the script "afunction"
Hence when when the script gets to this line:
func = afunction;
As a result, it tries to call "afunction" but cannot, because that is what you called your script.
The way to resolve this issue is to change the name of your script to something else.
You can refer to the following MATLAB Answer for more information: https://www.mathworks.com/matlabcentral/answers/1633265-i-have-this-error-execution-of-script-plot-as-a-function-is-not-supported-c-users-jonathan-e-le
3 Kommentare
Stephen23
am 23 Jul. 2024
Get rid of all code outside of the function definition! This you should save in an MFILE of the same name:
function y = afunciton(x)
y = exp(cos(x)) - x.^3 + 2*x.^2 + 5*x - 3;
end
And this is how you call it:
llim = -5;
ulim = -1;
options = optimset('Display','iter','TolX',10^-7,'Maxiter',500);
x = fzero(@afunciton, [llim ulim],options)
Walter Roberson
am 23 Jul. 2024
func = @afunction; %trying to make the variable func equivalent to "afunciton",
% the function I created in the afunction file but it doesn't work :(
llim = -5;
ulim = -1;
options = optimset('Display','iter','TolX',10^-7,'Maxiter',500);
[x] = fzero(func, [llim ulim],options);
However... your afunction is a script rather than a function, and for the purposes of fzero you strictly need to use a function.
My guess is that your afunction.m starts something like
clear all; clc
function z = afunction(x)
That "clear all" at the beginning of it is unnecessary, and makes the code into a script file instead of a function file.
0 Kommentare
This question is locked.
Siehe auch
Kategorien
Mehr zu Spreadsheets finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!