exponenta event banner

supportsVariable

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

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

Синтаксис

supported = supportsVariable(obj,var)

Описание

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

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

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

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

Пример: MyCustomReader

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

Пример: 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. n поле каждой структуры содержит символьный массив или строку для представления имени сигнала.

  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