⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 extcaller.m

📁 toolbox of BVQX, This is the access between BV and matlab. It will help you to analysis data from BV
💻 M
字号:
function fromwhere = extcaller(varargin)
% extcaller  - from where was a call issued
%
% FORMAT:       callername = extcaller
%
% See also DBSTACK

% Version:  v0.5c
% Build:    6120415
% Date:     Dec-04 2006, 3:15 PM CET
% Author:   Jochen Weber, Brain Innovation, B.V., Maastricht, NL
% URL/Info: http://wiki.brainvoyager.com/BVQXtools

% persistent versioning information
persistent ec_mlv;
if isempty(ec_mlv)
    ec_mlv = version;
    if ec_mlv(1) > '6'
        ec_mlv = 'file';
    else
        ec_mlv = 'name';
    end
end

% how to get stack info
switch (ec_mlv), case {'file'}
    pathstack = dbstack('-completenames');
case {'name'}
    pathstack = dbstack;
otherwise
    error( ...
        'BVQXtools:MemoryCorruption', ...
        'Interal variable glitch.' ...
    );
end

% set default caller name
fromwhere = 'CONSOLE_OR_GUI';
if length(pathstack) < 3
    return;
end

% input argument handling
if nargin < 1
    func = lower(pathstack(2).(ec_mlv));

elseif ischar(varargin{1})
    func = lower(varargin{1});

elseif isnumeric(varargin{1}) && ...
   ~isempty(varargin{1}) && ...
   ~isnan(varargin{1}(1))
    func = lower(pathstack(2).(ec_mlv));
    if varargin{1}(1) == 1
        func = fileparts(func);
    end

else
    error( ...
        'BVQXtools:BadArgument', ...
        'Unsupported input argument.' ...
    );
end

% try to find matching caller
for dbsi = 3:length(pathstack)
    if isempty(strfind(lower(pathstack(dbsi).(ec_mlv)), func))
        break;
    end
end
if dbsi < length(pathstack) || ...
    isempty(strfind(lower(pathstack(dbsi).(ec_mlv)), func))
    fromwhere = pathstack(dbsi).(ec_mlv);
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -