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