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

📄 equivalent.m

📁 这是一个关于MATLAB的函数
💻 M
字号:
function resp = equivalent(en,lorv)
%EQUIVALENT Get numeric equivalent of enum label and vice versa.
%   Copyright 2002 The MathWorks, Inc.
%   $Revision: 1.6 $ $Date: 2002/04/03 19:02:57 $

if ischar(lorv),
    resp = conversion_elem(lorv,en);
elseif isnumeric(lorv),
    resp = conversion_elem(lorv,en);
elseif iscell(lorv),
    resp = [];
    for ic = 1:prod(size(lorv)),
        resp{end+1} = conversion_elem(lorv{ic},en);
    end
    resp = reshape(resp,size(lorv));
else
    error('Enumerated types must be either string or numeric values');
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%555
% converts a single element (numeric value or label)
function resp = conversion_elem(lorv,en),
if isnumeric(lorv),
    % same numeric class as en.value ??
    if ~strcmp(class(lorv), class(en.value) ),
        nclass = class(en.value) % convert input to class of en.value
        eval(['cval =' nclass '(' lorv ');']);
    else
        cval = lorv;   % direct compare OK ?
    end
    resp = [];
    nvals = prod(size(cval));
    for iv = 1:nvals,
        v = cval(iv);
        ilab = find(v==en.value);
        if isempty(ilab),
            warning(['Input value ''' num2str(double(v)) ''' does not match any defined enumerated label']);
            resp{end+1} = '';
        else
            resp{end+1} = en.label{ilab};
        end
    end
    if size(lorv) == 1,
        resp = resp{:};
    else
        resp = reshape(resp,size(lorv));
    end
elseif ischar(lorv),
    ilab = strmatch(lorv,en.label,'exact');
    if isempty(ilab),
        warning(['Input label ''' lorv ''' does not match any defined enumerated value']);
        resp = [];
    else
        resp = en.value(ilab);
    end
else
    error('Enumerated types must be either a string or a numeric value');
end

% [EOF] equivalent.m

⌨️ 快捷键说明

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