std
標準偏差
構文
説明
は、サイズが 1 より大きい最初の配列の次元に沿った S
= std(A
)A
の要素の標準偏差を返します。既定では標準偏差が N-1
で正規化されます。N
は観測値の数です。
A
が観測値のベクトルである場合、S
はスカラーです。A
が、列に確率変数をもち、行に観測値をもつ行列である場合、S
は各列に対応する標準偏差を含む行ベクトルになります。A
が多次元配列の場合、std(A)
は、サイズが 1 より大きい最初の配列次元に沿って演算し、要素をベクトルとして扱います。この次元におけるS
のサイズは1
になりますが、他のすべての次元のサイズはA
と同じです。A
がスカラーの場合、S
は0
です。A
が0
行0
列の空の配列である場合、S
はNaN
です。A
が table または timetable の場合、std(A)
は、各変数の標準偏差を含む 1 行の table を返します。 (R2023a 以降)
は、前述のすべての構文で S
= std(___,missingflag
)A
の欠損値を含めるか省略するかを指定します。たとえば、std(A,"omitmissing")
は標準偏差の計算時にすべての欠損値を無視します。既定では、std
は欠損値を含めます。
例
行列の列の標準偏差
行列を作成して各列の標準偏差を計算します。
A = [4 -5 1; 2 3 5; -9 1 7]; S = std(A)
S = 1×3
7.0000 4.1633 3.0551
3 次元配列の標準偏差
3 次元配列を作成し、最初の次元に沿って標準偏差を計算します。
A(:,:,1) = [2 4; -2 1]; A(:,:,2) = [9 13; -5 7]; A(:,:,3) = [4 4; 8 -3]; S = std(A)
S = S(:,:,1) = 2.8284 2.1213 S(:,:,2) = 9.8995 4.2426 S(:,:,3) = 2.8284 4.9497
標準偏差の重みの指定
行列を作成し、重みベクトル w
に基づいて各列の標準偏差を計算します。
A = [1 5; 3 7; -9 2]; w = [1 1 0.5]; S = std(A,w)
S = 1×2
4.4900 1.8330
行列の行に沿った標準偏差
行列を作成し、各行に沿って標準偏差を計算します。
A = [6 4 23 -3; 9 -10 4 11; 2 8 -5 1]; S = std(A,0,2)
S = 3×1
11.0303
9.4692
5.3229
配列ページの標準偏差
3 次元配列を作成し、データの各ページに対する標準偏差を計算します (行と列)。
A(:,:,1) = [2 4; -2 1]; A(:,:,2) = [9 13; -5 7]; A(:,:,3) = [4 4; 8 -3]; S = std(A,0,[1 2])
S = S(:,:,1) = 2.5000 S(:,:,2) = 7.7460 S(:,:,3) = 4.5735
欠損値を除外した標準偏差
NaN
値を含む行列を作成します。
A = [1.77 -0.005 NaN -2.95; NaN 0.34 NaN 0.19]
A = 2×4
1.7700 -0.0050 NaN -2.9500
NaN 0.3400 NaN 0.1900
欠損値を除外して行列の標準偏差を計算します。NaN
値が含まれている行列の列では、std
は NaN
以外の要素で計算します。すべて NaN
値の A
の列では、標準偏差は NaN
です。
S = std(A,"omitmissing")
S = 1×4
0 0.2440 NaN 2.2203
R2023a より前: 欠損値を無視するには、"omitnan"
または "omitnat"
を使用します。
標準偏差と平均
行列を作成して、各列の標準偏差と平均を計算します。
A = [4 -5 1; 2 3 5; -9 1 7]; [S,M] = std(A)
S = 1×3
7.0000 4.1633 3.0551
M = 1×3
-1.0000 -0.3333 4.3333
行列を作成し、重みベクトル w
に基づいて各列の重み付け標準偏差と加重平均を計算します。
A = [1 5; 3 7; -9 2]; w = [1 1 0.5]; [S,M] = std(A,w)
S = 1×2
4.4900 1.8330
M = 1×2
-0.2000 5.2000
入力引数
A
— 入力配列
ベクトル | 行列 | 多次元配列 | table | timetable
入力配列。ベクトル、行列、多次元配列、table または timetable として指定します。A
がスカラーの場合、std(A)
は 0
を返します。A
が 0
行 0
列の空の配列である場合、std(A)
は NaN
を返します。
データ型: single
| double
| datetime
| duration
| table
| timetable
複素数のサポート: あり
w
— 重み
0
(既定値) | 1
| ベクトル
重み。次のいずれかの値に指定します。
0
—N-1
で正規化されます。ここで、N
は観測値の数です。観測値が 1 つだけの場合、重みは 1 になります。1
—N
で正規化されます。標準偏差を計算する
A
の次元に対応する、非負のスカラー値の重みで構成されるベクトル。
データ型: single
| double
dim
— 演算の対象の次元
正の整数スカラー
演算の対象の次元。正の整数のスカラーとして指定します。次元を指定しない場合、既定値はサイズが 1 より大きい最初の配列次元です。
次元 dim
は、長さが 1
に縮小した次元を示します。size(S,dim)
は 1
ですが、他のすべての次元のサイズは変化しません。
m
行 n
列の入力行列 A
を考えます。
std(A,0,1)
は、A
の各列における要素の標準偏差を計算し、1
行n
列の行ベクトルを返します。std(A,0,2)
は、A
の各行における要素の標準偏差を計算し、m
行1
列の列ベクトルを返します。
dim
が ndims(A)
よりも大きい場合、std(A)
は A
と同じサイズのゼロの配列を返します。
vecdim
— 次元のベクトル
正の整数のベクトル
次元のベクトル。正の整数のベクトルとして指定します。各要素は入力配列の次元を表します。指定された操作次元の出力の長さは 1 で、その他は同じままです。
2×3×3 の入力配列 A
を考えます。次に、std(A,0,[1 2])
は、要素が A
の各ページに対して計算された標準偏差である 1×1×3 の配列を返します。
missingflag
— 欠損値の条件
"includemissing"
(既定値) | "includenan"
| "includenat"
| "omitmissing"
| "omitnan"
| "omitnat"
欠損値の条件。次の表の値のいずれかとして指定します。
値 | 入力データ型 | 説明 |
---|---|---|
"includemissing" (R2023a 以降) | サポートされているすべてのデータ型 | 標準偏差の計算時に |
"includenan" | double , single , duration | |
"includenat" | datetime | |
"omitmissing" (R2023a 以降) | サポートされているすべてのデータ型 | A および w の欠損値を無視し、点の数を減らして標準偏差を計算します。操作次元のすべての要素がない場合、S の対応する要素がありません。 |
"omitnan" | double , single , duration | |
"omitnat" | datetime |
出力引数
S
— 標準偏差
スカラー | ベクトル | 行列 | 多次元配列 | table
標準偏差。スカラー、ベクトル、行列、多次元配列、または table として返されます。
A
が観測値のベクトルである場合、S
はスカラーです。A
が、列に確率変数をもち、行に観測値をもつ行列である場合、S
は各列に対応する標準偏差を含む行ベクトルになります。A
が多次元配列の場合、std(A)
は、サイズが 1 より大きくない最初の配列次元に沿って演算し、要素をベクトルとして扱います。この次元におけるS
のサイズは1
になりますが、他のすべての次元のサイズはA
と同じです。A
がスカラーの場合、S
は0
です。A
が0
行0
列の空の配列である場合、S
はNaN
です。A
が table または timetable の場合、S
は 1 行の table です。 (R2023a 以降)
M
— 平均
スカラー | ベクトル | 行列 | 多次元配列 | table
平均。スカラー、ベクトル、行列、多次元配列、または table として返されます。
A
が観測値のベクトルである場合、M
はスカラーです。A
が、列に確率変数をもち、行に観測値をもつ行列である場合、M
は各列に対応する平均を含む行ベクトルになります。A
が多次元配列の場合、std(A)
は、サイズが 1 より大きい最初の配列次元に沿って演算し、要素をベクトルとして扱います。この次元におけるM
のサイズは1
になりますが、他のすべての次元のサイズはA
と同じです。A
がスカラーの場合、M
はA
と等しくなります。A
が0
行0
列の空の配列である場合、M
はNaN
です。A
が table または timetable の場合、M
は 1 行の table です。 (R2023a 以降)
S
が重み付け標準偏差の場合、M
は加重平均です。
詳細
標準偏差
N 個のスカラー観測値からなる有限長ベクトル A の標準偏差は、次のように定義されます。
ここで μ は、A の平均値です。
標準偏差は、分散の平方根です。
一部の標準偏差の定義では、N - 1 の代わりに N の正規化係数が使用されます。重み 1
を指定することにより、正規化係数 N を使用して、この平均回りのサンプルの 2 次モーメントの平方根を生成できます。
標準偏差の正規化係数に関係なく、平均は正規化係数 N をもつと仮定されます。
重み付け標準偏差
加重平均
N 個のスカラーの観測値からなる確率変数ベクトル A と重み付けスキーム w
に対し、加重平均は次のように定義されます。
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
C++ コード生成は以下の構文をサポートします。
S = std(A)
S = std(A,w)
S = std(A,w,"all")
S = std(A,w,dim)
S = std(A,w,vecdim)
S = std(__,missingflag)
指定する場合、次元は定数でなければなりません。
ツールボックス関数のコード生成に対する可変サイズの制限 (MATLAB Coder)を参照してください。
GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。
使用上の注意事項および制限事項:
GPU コード生成は以下の構文をサポートします。
S = std(A)
S = std(A,w)
S = std(A,w,"all")
S = std(A,w,dim)
S = std(A,w,vecdim)
S = std(__,missingflag)
dim
を指定する場合、定数でなければなりません。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
この関数は GPU 配列を完全にサポートしています。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
分散配列
Parallel Computing Toolbox™ を使用して、クラスターの結合メモリ上で大きなアレイを分割します。
この関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入R2023a: table および timetable で直接計算を実行
関数 std
は、table または timetable 内のすべての変数に対して、それらの変数にアクセスするためのインデックス付けを行うことなく計算できます。すべての変数のデータ型で計算がサポートされている必要があります。詳細については、table および timetable での直接計算を参照してください。
R2023a: 欠損値の条件の指定
"includemissing"
オプションまたは "omitmissing"
オプションを使用して、標準偏差の計算時に入力配列のすべての欠損値を含めるか省略します。以前は、"includenan"
、"omitnan"
、"includenat"
、および "omitnat"
により、入力配列のデータ型に固有の欠損値条件を指定していました。
R2023a: グループ サイズが小さい場合のパフォーマンスが向上
関数 std
で、操作次元が指定されていないときに実数ベクトルに対して計算する際のパフォーマンスが向上しています。この関数での既定の操作次元の判別が、R2023a では R2022b より高速化しています。
たとえば、以下のコードでは、既定のベクトル次元に沿って標準偏差を計算します。このコードは、以前のリリースよりパフォーマンスが約 1.9 倍高速化しました。
function timingStd A = rand(10,1); for i = 1:8e5 std(A); end end
おおよその実行時間は以下のとおりです。
R2022b: 1.77 秒
R2023a: 0.93 秒
このコードの時間測定では、Windows® 10、Intel® Xeon® CPU E5-1650 v4 (3.60 GHz) 搭載のテスト システムで、関数 timeit
を使用しました。
timeit(@timingStd)
R2022a: 平均または加重平均を返す
関数 std
は、2 番目の出力引数 M
を使用することで、標準偏差の計算に使用される入力要素の平均値を返せるようになりました。重み付けスキームが指定された場合、std
は加重平均を返します。
R2018b: 複数の次元での演算
入力配列の複数の次元を一度に演算します。操作次元のベクトルを指定するか、"all"
オプションを指定してすべての配列次元で演算を行います。
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)