Небольшое изменение ответа Ники для повторяемости: перед тем, как перейти к карте, где хранится ваш stack.m
GUI, запустите
builtinStack = @stack();
, который создает дескриптор функции,Таким образом, вы можете вызывать builtinStack()
, как предполагается, что вызывается функция MATLAB, без необходимости cd
из каталога каждый раз, когда вы хотите его использовать.
Использование builtin
, как предлагает hoki , не работает, поскольку встроенные функции определены как
... Такие функции, как "ind2sub", "sub2ind"и т. д. не являются встроенными функциями MATLAB .... Те функции, которые поставляются с MATLAB, но не определены как встроенные функции, могут называться «функциями MATLAB» ...
В ответе Техническая поддержка MathWorks .Это означает, что такие функции, как stack
, не являются встроенными в том смысле, что они построены на другом языке, скомпилированы и затем вызваны из MATLAB, но на самом деле написаны на MATLAB и поставляются вместе с выпуском.Основной способ проверить это - набрать edit <functionname>
;при отображении только комментариев функция является встроенной, как определено TMW, когда она также показывает код MATLAB, например stack
, она не является встроенной согласно приведенному выше определению.
Примервстроенная функция - sum
, связанный с ней файл .m выглядит следующим образом:
%SUM Sum of elements.
% S = SUM(X) is the sum of the elements of the vector X. If X is a matrix,
% S is a row vector with the sum over each column. For N-D arrays,
% SUM(X) operates along the first non-singleton dimension.
%
% S = SUM(X,DIM) sums along the dimension DIM.
%
% S = SUM(...,TYPE) specifies the type in which the
% sum is performed, and the type of S. Available options are:
%
% 'double' - S has class double for any input X
% 'native' - S has the same class as X
% 'default' - If X is floating point, that is double or single,
% S has the same class as X. If X is not floating point,
% S has class double.
%
% S = SUM(...,NANFLAG) specifies how NaN (Not-A-Number) values are
% treated. The default is 'includenan':
%
% 'includenan' - the sum of a vector containing NaN values is also NaN.
% 'omitnan' - the sum of a vector containing NaN values
% is the sum of all its non-NaN elements. If all
% elements are NaN, the result is 0.
%
% Examples:
% X = [0 1 2; 3 4 5]
% sum(X, 1)
% sum(X, 2)
%
% X = int8(1:20)
% sum(X) % returns double(210), accumulates in double
% sum(X,'native') % returns int8(127), because it accumulates in
% % int8 but overflows and saturates.
%
% See also PROD, CUMSUM, DIFF, ACCUMARRAY, ISFLOAT.
% Copyright 1984-2015 The MathWorks, Inc.
% Built-in function.
, то есть из последней строки также видно, что это встроенный файл.в соответствии с определением.Обратите внимание, что все, что содержится в первом «комментарии», видно при наборе help sum
;в том смысле, что пустая строка разбивает файл справки.Таким образом, информация об авторских правах и встроенной информации не отображается при простом вводе help sum
в командной строке, поэтому для проверки, является ли функция встроенной, вам нужно edit <functionname>
.