Error: Function definition not supported in this context. Create functions in code file.
905 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Agustin Foxley
le 28 Jan 2020
Modifié(e) : Stephen23
le 10 Juin 2024
Hello,
I was trying to create a simple function on matlab, I already have a file named "AddOne.m", so it should work, however at the first line of code, matlab throws the following error
"Error: Function definition not supported in this context. Create functions in code file.". Any ideas how to sort this out?
Thanks in advance!
1 commentaire
Stephen23
le 28 Jan 2020
In MATLAB functions cannot be defined in the command window.
You appear to be running the entire function in the command window in an attempt to define that function.
You don't need to do that: just define the function in a file, and then call it. That is all you need to do.
Réponse acceptée
Deepak Gupta
le 6 Mai 2020
Hi Augstin,
In matalb, you need to write your function in a seperate matlab file and then you can call this function either from command window or from a seperate matlab file.
For example, here you can write your matlab function addOne.m in one file. File content can be something like:
%File addOne.m
function finalAnswer = addOne(inputNumber)
finalAnswer = inputNumber+1;
end
Now you can use this function in your other matlab file or in command window. For example, you can create a seperate file to call this function.
% File testaddOne.m
inputNumber = 5;
finalAnswer = addOne(inputNumber);
disp('Thining...');
fprintf('Final Answer: %d \n', finalAnswer);
display('Done');
To avoid confusion, for now keep both files at one place. When you run file testaddOne.m, it will automatically call other file and make use of it.
Cheers.
0 commentaires
Plus de réponses (4)
kazi sharif
le 8 Sep 2020
Modifié(e) : Walter Roberson
le 22 Fév 2022
function Divide_Average(a,x0,tol)
clc
if a<0
b=abs(a);
else
b=a;
%fprint(' Neagtive Number is not taken in Square root');
end
x = zeros(1,1);
fprontf('i x(i)\n');
fprintf('---------\n');
x(1)= x0; fprintf('%5.0f\t %15.5f\n',1,x(1));
i=2;
while (1)
x(i) = 0.5*(x(i-1) + a/x(i-1));
fprintf('%5.0f\t %15.5f\n',i,x(i));
RelER = (x(i) - x(i-1))/x(i-1);
if abs(RelER) <= tol, break, end
i = i + 1;
end
fprintf('\n\n Square Root of %10.5f\t is %10.5f\n',a,x(end));
end
function Divide_Average(a,x0,tol)
↑
Error: Function definition not supported in this context. Create functions in code file.
>>
1 commentaire
nina lucia lins dias
le 13 Mar 2022
Modifié(e) : Walter Roberson
le 1 Août 2023
I am trying to do this:
function edge_r ( )
im = imread('rice.png');
[row col] = size(im)
for i=1:row-1
im2(i,j) =abs(im(i+1,j+1)) + abs(im(i+1,j));
end
end
figure, imshow(im2);
figure, imshow(im)
however i cannot writing down the whole statement cos it gave me errors
function edge_r()
function edge_r()
↑
Error: Function definition are not supported in this context. Functions can only be created as local or nested functions in
code files.
2 commentaires
Steven Lord
le 13 Mar 2022
You cannot type the function keyword in the Command Window. Save that function in a file named edge_r.m and then call the function in the Command Window.
Emmanuel
le 1 Août 2023
function predator_simulation() ↑ Error: Function definition are not supported in this context. Functions can only be created as local or nested functions in code files.
1 commentaire
Walter Roberson
le 1 Août 2023
Functions cannot be defined at the command line. You must store that code in predator_simulation.m file.
Fathima
le 10 Juin 2024
function bitDepth = fetchBitDepth(imageData)
↑
Error: Function definitions are not supported in this context. Functions can only be created as local or nested functions in code files.
1 commentaire
Voir également
Catégories
En savoir plus sur Environment and Settings dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!