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). The supportsVariable метод возвращает true, когда:

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

  2. The n поле каждой структуры содержит символьный массив или строку для представления имени сигнала.

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

  4. The 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