getChildren
クラス: io.reader
名前空間: io
構文
childObj = getChildren(obj)
説明
は、カスタム ファイルまたはワークスペース リーダーを使用してシミュレーション データ インスペクターにインポートされたデータの階層ノードと信号に対応するカスタム リーダー オブジェクトの配列を返します。childObj
= getChildren(obj)getChildren
メソッドを使用してインポートされたデータの階層を保持します。ファイルから複数の信号をインポートする場合、getChildren
メソッドを使用して、ファイルに対応する最上位ノードの下に含まれている信号のフラット リストとしてデータをインポートします。
入力引数
出力引数
例
ファイルからインポートされた構造体データ
この例では getChildren
メソッドを使用して、ファイルを表す最上位ノードに含まれている信号のフラット リストとしてファイルから複数の信号をインポートします。クラス定義ファイル内で getChildren
メソッドのコードを指定します。
この例では完全なクラス定義は示しません。すべてのカスタム リーダーは getName
、getTimeValues
、および getDataValues
メソッドの動作を定義しなければなりません。完全なクラス定義およびインポート ワークフローを示す例については、カスタム ファイル リーダーを使用したデータのインポートを参照してください。
この例では、getChildren
メソッドは関数 readtable
を使用してファイルからデータを読み取ります。この例のカスタム リーダーは最初の列のデータを常に時間として使用するため、最初の変数名はクリアされ、使用されません。getChildren
メソッドは、ファイルおよびファイル内の各信号に対応する最上位レベルのノードのカスタム リーダー オブジェクトを作成し、値を FileName
プロパティと VariableName
プロパティに代入します。
classdef ExcelFirstColumnTimeReader < io.reader methods % ... function childObj = getChildren(obj) childObj = {}; if isempty(obj.VariableName) t = readtable(obj.FileName); vars = t.Properties.VariableNames; vars(1) = []; childObj = cell(size(vars)); for idx = 1:numel(vars) childObj{idx} = ExcelFirstColumnTimeReader; childObj{idx}.FileName = obj.FileName; childObj{idx}.VariableName = vars{idx}; end end end % ... end end
ワークスペースからインポートされた構造体データ
この例では getChildren
メソッドを使用してベース ワークスペースの変数に保存された構造体の配列をインポートします。クラス定義ファイル内で getChildren
メソッドのコードを指定します。
この例では完全なクラス定義は示しません。すべてのカスタム リーダーは getName
、getTimeValues
、および getDataValues
メソッドの動作を定義しなければならず、ワークスペース データ リーダーは supportsVariable
メソッドを定義しなければなりません。ワークスペース データ リーダーの完全なクラス定義およびインポート ワークフローを示す例については、カスタム データ リーダーを使用したワークスペース変数のインポートを参照してください。
この例では、getChildren
メソッドは、変数が構造体の配列の場合、入力変数の各構造体のカスタム リーダー オブジェクトを作成します。この例のワークスペース リーダーは、作成する各オブジェクトを識別するために getChildren
メソッドで使用する ChannelIndex
プロパティを定義します。
classdef SimpleStructReader < io.reader properties ChannelIndex end methods % ... function childObj = getChildren(obj) childObj = {}; if ~isscalar(obj.VariableValue) && isempty(obj.ChannelIndex) numChannels = numel(obj.VariableValue); childObj = cell(numChannels,1); for idx = 1:numChannels childObj{idx} = SimpleStructReader; childObj{idx}.VariableName = sprintf('%s(%d)',obj.VariableName,idx); childObj{idx}.VariableValue = obj.VariableValue; childObj{idx}.ChannelIndex = idx; 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)