How can I save functions or sub functions in matlab?

36 次查看(过去 30 天)
Dear all, I know how to save variables, but how can I save functions or sub functions in matlab? Thanks..
  2 个评论
Stephen23
Stephen23 2018-8-23
编辑:Stephen23 2018-8-23
How are you trying to define this function?
methaq ali
methaq ali 2018-8-23
编辑:Stephen23 2018-8-23
Dear Stephen, I make copy for this code:
function [m,s] = stat(x)
n = length(x);
m = sum(x)/n;
s = sqrt(sum((x-m).^2/n));
end
% Call the function from the command line.
values = [12.7, 45.4, 98.9, 26.6, 53.1];
[ave,stdev] = stat(values)
Directly from Matlab help to my matlab R2014a editor I get this message in command win.:
function [m,s] = stat(x)
|
Error: Function definitions are not permitted in this context.
Thanks..

请先登录,再进行评论。

采纳的回答

Stephen23
Stephen23 2018-8-23
编辑:Stephen23 2018-8-23
It is not clear from your explanation where you are defining the function, but I can see two main possibilities which would generate that error (or a similar error):
  • Trying to define a function in the command window: this is not allowed in MATLAB, all functions must be saved in a file (except for anonymous functions).
  • Trying to define a function inside a script: only MATLAB versions from R2016B+ support functions defined in scripts. You need to read the documentation carefully for your version, not the online help (which is for the most recent version): for your MATLAB version it is not possible to define a function inside a script.
In practice if you want to define a function then do NOT have any code outside of any function declaration, e.g. this needs to be the entire file contents:
function [m,s] = stat(x)
n = length(x);
m = sum(x)/n;
s = sqrt(sum((x-m).^2/n));
end
You can add local functions to the same file, but NO CODE outside of those functions. Save the function as a file stat.m (you should use the same name as the function itself). Then it will work.

更多回答(1 个)

KSSV
KSSV 2018-8-23
function c = mysum(a,b)
c = a+b ;
end
The above is a function.....as I have named it mysum, when you try to save, it will be automatically saved on the name mysum.m.
  3 个评论
methaq ali
methaq ali 2018-8-23
Thank you for answering my quastion but when copy this code to matlab the following error massage appear: function c = mysum(a,b ) | Error: Function definitions are not permitted in this context. I dont Know why!

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Scope Variables and Generate Names 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by