このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
extract
構文
説明
[
は、i 番目の行に i 番目のフレームの始点と終点を格納した行列 features
,info
,framelimits
] = extract(sFE
,x
)framelimits
を返します。この構文は、特徴抽出器オブジェクトの FeatureFormat
プロパティを "matrix"
に設定した場合にのみ有効です。
例
温度データからの毎日のピークの抽出
31 日間にわたってボストンのローガン空港で 1 時間間隔で測定された摂氏単位の温度を読み込みます。データをプロットします。
load bostemp days = (1:31*24)/24; plot(days, tempC) axis tight ylabel('Temp (\circC)') xlabel('Time elapsed from Jan 1, 2011 (days)') title('Logan Airport Dry Bulb Temperature (source: NOAA)')
signalTimeFeatureExtractor
オブジェクトを作成して PeakValue
機能を有効にします。1 日あたりの最大絶対温度値を取得するには、フレーム サイズを 24
サンプルに、フレームのオーバーラップを 0
サンプルに設定します。
sFE = signalTimeFeatureExtractor(FrameSize=24,FrameOverlapLength=0,PeakValue=true);
オブジェクトに対して関数 extract
を呼び出し、データ セット内の日次最大絶対温度を抽出します。
peaktemps = extract(sFE,tempC)
peaktemps = 31×1
2.8000
6.1000
8.3000
3.3000
2.8000
4.4000
4.4000
6.1000
10.6000
11.7000
⋮
抽出されたピーク値を確認します。信号を 1 日あたりの温度値を表す 24 サンプルのセグメントに分割し、各セグメントの最大絶対値を計算します。結果のベクトルを peaktemps
と比較します。
y = buffer(tempC,24); [mx,idx] = max(abs(y)); tf = isequal(peaktemps,mx')
tf = logical
1
timetable データからの平均値の抽出
31 日間にわたってボストンのローガン空港で 1 時間間隔で測定された摂氏単位の温度を読み込みます。データをプロットします。
load bostemp days = (1:31*24)/24; plot(days,tempC) axis tight ylabel("Temp (\circC)") xlabel("Time elapsed from Jan 1, 2011 (days)") title("Logan Airport Dry Bulb Temperature (source: NOAA)")
温度測定値の配列を timetable に変換します。最初の温度測定は 2011 年 1 月 1 日に行われました。
tt = array2timetable(tempC,TimeStep=hours(1),StartTime=datetime(2011,01,01));
signalTimeFeatureExtractor
オブジェクトを作成し、Mean
特徴を有効にして週間平均温度を取得します。抽出器のサンプル レートとフレーム サイズ (1 週間 = 168 時間) を指定します。抽出した値の出力形式を table に設定します。
fs = 1/3600;
sFE = signalTimeFeatureExtractor(SampleRate=fs,FrameSize=168,Mean=true,FeatureFormat="table");
関数 extract
を呼び出して、データ セットから週間平均温度を抽出します。この関数は、過去 3 日間 (72 時間) に取得された測定値は、1 週間に満たないため含めません。
meantemps = extract(sFE,tt)
meantemps=4×3 table
FrameStartTime FrameEndTime Mean
______________ ____________ _______
1 168 -1.8357
169 336 -4.3095
337 504 1.7976
505 672 2.0911
信号からの特徴の抽出
1 kHz で 2 秒間サンプリングされた 2 次チャープを考えます。チャープの初期周波数は 100 Hz で、t = 1 秒のとき 200 Hz まで増大します。そのスペクトログラムを計算して表示します。
fs = 1e3; t = 0:1/fs:2; y = chirp(t,100,1,200,'quadratic'); pspectrum(y,fs,'spectrogram')
signalFrequencyFeatureExtractor
オブジェクトを作成して、信号から周波数の平均値と中央値を取得します。サンプル レートを指定します。
sFE = signalFrequencyFeatureExtractor(SampleRate=fs,MeanFrequency=true,MedianFrequency=true);
特徴を抽出します。info
は、抽出された特徴ごとの features
に含まれる列インデックスを返します。
[features,info] = extract(sFE,y)
features = 1×2
226.0160 199.7034
info = struct with fields:
MeanFrequency: 1
MedianFrequency: 2
特徴抽出器オブジェクトの FrameSize
および FrameRate
プロパティを設定して、信号を 2 つのフレームに分割します。最初のフレームが初期周波数 100 Hz で振動するチャープを表し、2 番目のフレームが 200 Hz で振動するチャープを表します。各フレームの周波数の平均値と中央値を抽出し、フレームの範囲を出力に含めます。
sFE.FrameSize = round(length(y)/2); sFE.FrameRate = 1000; [features,info,framelimits] = extract(sFE,y)
features = 2×2
131.4921 124.9820
331.2664 324.6992
info = struct with fields:
MeanFrequency: 1
MedianFrequency: 2
framelimits = 2×2
1 1001
1001 2001
入力引数
sFE
— 特徴抽出器オブジェクト
signalFrequencyFeatureExtractor
オブジェクト | signalTimeFeatureExtractor
オブジェクト
特徴抽出器オブジェクト。signalFrequencyFeatureExtractor
オブジェクトまたは signalTimeFeatureExtractor
オブジェクトとして指定します。
x
— 入力信号
ベクトル | 行列 | timetable
入力信号。ベクトル、行列、または timetable として指定します。
x
が timetable の場合、特徴抽出器オブジェクト sFE
の SampleRate
プロパティを指定しなければなりません。timetable x
のサンプル レートは、sFE
で指定されたサンプル レートと等しくなければなりません。
データ型: single
| double
出力引数
features
— 抽出された特徴
3 次元配列
抽出された特徴。L×M×N の配列として返されます。
L — フレーム数
M — フレームごとの抽出された特徴数
N — チャネル数
入力特徴抽出器オブジェクトの FeatureFormat
プロパティを "table"
に設定した場合、この関数は最初の 2 つの table 変数にリストされたフレームの範囲を含む表形式で、抽出された特徴を返します。入力特徴抽出器オブジェクトの FeatureFormat
プロパティを "matrix"
に設定した場合、この関数は抽出された特徴を行列形式で返します。
info
— 特徴情報
構造体
特徴情報。構造体として返されます。この関数は、各特徴を出力行列 features
内の列位置にマッピングします。この引数は、入力特徴抽出器オブジェクトの FeatureFormat
プロパティを "matrix"
に設定した場合にのみ適用されます。
framelimits
— フレームの範囲
行列
フレームの範囲。行列として返されます。framelimits
内の i 番目の行には、i 番目のフレームの始点と終点が格納されています。この引数は、入力特徴抽出器オブジェクトの FeatureFormat
プロパティを "matrix"
に設定した場合にのみ適用されます。
拡張機能
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
この関数は、GPU 配列を完全にサポートします。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2021b で導入R2023a: gpuArray
入力の使用
関数 extract
は gpuArray
入力をサポートします。この機能を使用するには、Parallel Computing Toolbox™ が必要です。
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)