getDataValues
クラス: io.reader
名前空間: io
構文
dataVals = getDataValues(obj)
説明
はカスタム ファイルまたはワークスペース変数リーダーを使用して、シミュレーション データ インスペクターにインポートされたデータで使用するデータ値を返します。dataVals
= getDataValues(obj
)getDataValues
メソッドのコードを指定して、独自のファイルまたは変数形式から信号値を抽出します。
入力引数
出力引数
dataVals
— 信号値
数値配列 | enum 配列 | logical 配列 | string 配列
信号値。数値、列挙値、logical 値、string 値の配列として返されます。スカラー信号および幅広い信号の場合、配列の最初の次元が時間と一致し、getTimeValues
で返される時間ベクトルの長さと一致しなければなりません。多次元信号の場合、最後の次元が時間と一致し、getTimeValues
で返される時間ベクトルの長さと一致しなければなりません。
例
ファイルからインポートされたデータの信号値を取得する
ファイルからインポートされたデータで使用する信号値を返すように getDataValues
メソッドの関数定義を記述します。この例のカスタム リーダーは階層構造をもつファイルからデータをインポートし、ファイルを最上位ノードとして扱います。クラス定義ファイル内で getDataValues
メソッドのコードを指定します。
この例では完全なクラス定義は示しません。すべてのカスタム リーダーは getName
、getTimeValues
、および getDataValues
メソッドの動作を定義しなければなりません。完全なクラス定義およびインポート ワークフローを示す例については、カスタム ファイル リーダーを使用したデータのインポートを参照してください。
この例では、getChildren
メソッドは関数 readtable
を使用してデータを読み取り、ファイルおよびファイル内の各信号に対応する最上位ノードのカスタム リーダー オブジェクトの配列を返します。次に、getDataValues
メソッドは関数 readtable
を使用してデータを読み取り、各カスタム リーダー オブジェクトの 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 function dataVals = getDataValues(obj) dataVals = []; if ~isempty(obj.VariableName) t = readtable(obj.FileName); dataVals = t.(obj.VariableName); end end % ... end end
ワークスペース変数から信号値を取得する
ワークスペース変数から信号値を返すように getDataValues
メソッドの関数定義を記述します。クラス定義ファイル内で getDataValues
メソッドにより実行されるコードを指定します。
この例では完全なクラス定義は示しません。すべてのカスタム リーダーは getName
、getTimeValues
、および getDataValues
メソッドの動作を定義しなければならず、ワークスペース データ リーダーは supportsVariable
メソッドを定義しなければなりません。ワークスペース データ リーダーの完全なクラス定義およびインポート ワークフローを示す例については、カスタム データ リーダーを使用したワークスペース変数のインポートを参照してください。
この例のカスタム リーダーはワークスペースから構造体または構造体の配列をインポートします。構造体には信号データ (d
)、時間データ (t
)、および信号名 (n
) のフィールドが含まれていなければなりません。インポートする変数がスカラー構造体の場合、getDataValues
メソッドは構造体の d
フィールドからデータを返します。
変数が構造体の配列の場合、カスタム リーダーはデータのインポートに getDataValues
メソッドと getChildren
メソッドの両方を使用します。getChildren
メソッドは配列内の各構造体に対してカスタム リーダー オブジェクトを作成し、配列内の信号データのインデックスを特定する ChannelIndex
プロパティを設定します。次に、getDataValues
メソッドは ChannelIndex
プロパティ値を使用して VariableValue
プロパティ値から構造体の配列である適切な構造体を選択します。
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 function dataVals = getDataValues(obj) if isscalar(obj.VariableValue) dataVals = obj.VariableValue.d; elseif ~isempty(obj.ChannelIndex) varVal = obj.VariableValue(obj.ChannelIndex); dataVals = varVal.d; else dataVals = []; 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)