supportsVariable
クラス: io.reader
名前空間: io
構文
supported = supportsVariable(obj,var)
説明
は、supported
= supportsVariable(obj
,var
)obj
で指定されたカスタム ワークスペース リーダーが var
で指定された変数をサポートするかどうかを示す logical 値 supported
を返します。カスタム ワークスペース リーダーを記述する場合は、クラス定義に supportsVariable
メソッドを実装しなければなりません。
入力引数
obj
— カスタム データ リーダー
io.reader
サブクラス オブジェクト
カスタム データ リーダー。io.reader
基底クラスから継承されるクラスのオブジェクトとして指定します。
例: MyCustomReader
var
— インポートするワークスペース変数
変数
インポートするワークスペース変数。ベース ワークスペースの変数として指定します。
例: myVar
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| struct
| table
| cell
| categorical
| datetime
| duration
| calendarDuration
| fi
複素数のサポート: あり
出力引数
supported
— カスタム リーダーが変数をサポートするかどうか
logical
カスタム リーダーが変数をサポートするかどうか。logical 値として返されます。
例
カスタム リーダーが変数をサポートするかどうかを判別
リーダーが入力変数をインポートできる場合にのみ true を返すように supportsVariable
メソッドの関数定義を記述します。クラス定義ファイル内で supportsVariable
メソッドのコードを指定します。
この例では完全なクラス定義は示しません。すべてのカスタム リーダーは getName
、getTimeValues
、および getDataValues
メソッドの動作を定義しなければならず、ワークスペース データ リーダーは supportsVariable
メソッドを定義しなければなりません。ワークスペース データ リーダーの完全なクラス定義およびインポート ワークフローを示す例については、カスタム データ リーダーを使用したワークスペース変数のインポートを参照してください。
この例のカスタム リーダーはワークスペースから構造体または構造体の配列をインポートします。構造体には信号データ (d
)、時間データ (t
)、および信号名 (n
) のフィールドが含まれていなければなりません。supportsVariable
メソッドは次の場合に true を返します。
入力変数は、適切なフィールドを含む構造体または構造体の配列である。
各構造体の
n
フィールドに、信号名を表す文字配列または string が含まれる。各構造体の
t
フィールドは、double データの列ベクトルである。各構造体の
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 で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)