supportsVariable

Класс: io.reader
Пакет: iO

Возвратите логическую индикацию относительно того, поддерживает ли пользовательский читатель переменную

Синтаксис

supported = supportsVariable(obj,var)

Описание

supported = supportsVariable(obj,var) возвращает логическое значение supported это указывает ли пользовательский читатель рабочей области, заданный obj поддерживает переменную, заданную var. Когда вы пишете пользовательскому читателю рабочей области, необходимо реализовать supportsVariable метод в определении класса.

Входные параметры

развернуть все

Пользовательское средство чтения данных в виде объекта класса, который наследовался io.reader базовый класс.

Пример: MyCustomReader

Переменная Workspace, чтобы импортировать в виде переменной в базовом рабочем пространстве.

Пример: myVar

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | struct | table | cell | categorical | datetime | duration | calendarDuration | fi
Поддержка комплексного числа: Да

Выходные аргументы

развернуть все

Ли пользовательская переменная поддержек читателя, возвращенная как логическое значение.

Примеры

развернуть все

Запишите функциональное определение для supportsVariable метод, чтобы возвратить true только, когда читатель может импортировать входную переменную. Задайте код для supportsVariable метод в файле определения класса.

Этот пример не показывает полное определение класса. Все пользовательские читатели должны задать поведение для getName, getTimeValues, и getDataValues методы и средства чтения данных рабочей области должны задать supportsVariable метод. Для примера, который показывает полное определение класса и рабочий процесс импорта для средства чтения данных рабочей области, смотрите, что Переменные Рабочей области Импорта Используют Пользовательское Средство чтения данных.

Пользовательский читатель в этом примере импортирует структуру или массив структур из рабочей области. Структуры должны содержать поля для данных сигнала (d), данные времени (t), и имя сигнала (n). supportsVariable метод возвращает true когда:

  1. Входная переменная является структурой или массивом структур, который содержит соответствующие поля.

  2. То поле каждой структуры содержит символьный массив или строку, чтобы представлять имя сигнала.

  3. t поле каждой структуры является вектор-столбцом двойных данных.

  4. d поле каждой структуры содержит числовые данные и одного размера с t поле, означая существует демонстрационное значение для каждого временного шага.

classdef ExcelFirstColumnTimeReader < io.reader

  methods
    % ...

    function supported = supportsVariable(~, val)
      % Support structure with fields t (time), d (data), and n (name)
      supported = ...
        isstruct(val) && ...
        isfield(val,'t') && ...
        isfield(val,'d') && ...
        isfield(val,'n');
      if supported
        for idx = 1:numel(val)
          varName = val(idx).n;
          time = val(idx).t;
          varData = val(idx).d;
                    
          % Name must be string or character array
          if ~ischar(varName) && ~isstring(varName)
            supported = false;
            
          % Time must be double column vector
          elseif ~isa(time,'double') || ~iscolumn(time)
            supported = false;

          % Data size must match time size
          else
            timeSz = size(time);
            dataSz = size(varData);
                        
            if ~isnumeric(varData) || ~isequal(dataSz, timeSz)
                    supported = false;
            end
          end
        end
      end
    end

  % ...
  end
end
Введенный в R2020b