matlab.perftest.TimeExperiment.limitingSamplingError
クラス: matlab.perftest.TimeExperiment
名前空間: matlab.perftest
指定された許容誤差および信頼度をもつ時間実験を構築
構文
説明
experiment = matlab.perftest.TimeExperiment.limitingSamplingError
は各テスト スイート要素について、指定された統計目標値 (許容誤差、信頼度など) をもつ時間実験を構築します。このメソッドは FrequentistTimeExperiment
のインスタンスを返します。この構文は以下の既定値を使用してサンプル測定値の数を決定します。
ウォームアップ測定の数: 5
サンプルの最小数: 4
他の統計目標値が満たされていない場合に収集するサンプルの最大数: 256
サンプルの相対許容誤差の目標値: 0.05 (5%)
サンプルが相対許容誤差内に収まる信頼度: 0.95 (95%)
experiment = matlab.perftest.TimeExperiment.limitingSamplingError(
は、1 つ以上の名前と値の引数で指定された追加オプションを使用して時間実験を構築します。この構文を使用して、上記の既定値をオーバーライドします。Name,Value
)
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name
を引用符で囲みます。
例: experiment = matlab.perftest.TimeExperiment.limitingSamplingError('RelativeMarginOfError',0.12,'MaxSamples',100)
は、サンプルの相対許容誤差が 12% になるか、100 個の測定値を収集するまで、サンプル測定値を収集する時間実験を作成します。
ウォームアップ測定の数。非負の整数として指定します。NumWarmups
は、テスト フレームワークがウォームアップのためにテスト コードを実行する回数を定義します。
サンプル測定の最小数。正の整数として指定します。この値は、フレームワークがウォームアップの実行後、テスト コードを実行する最小回数を定義します。フレームワークはテストが統計目標値を満たしたかどうかにかかわらず、少なくとも MinSamples
回テスト コードを実行します。
サンプル測定の最大数。正の整数として指定します。この値は、フレームワークが NumWarmups
の後、テスト コードを実行する最大回数を定義します。実験が統計目標値を満たさない場合、フレームワークは最大 MaxSamples
個を収集します。
サンプルの相対許容誤差の目標値。正の数値として指定します。
フレームワークは次の式を使用して、サンプル X
の相対許容誤差を計算します。
ここで T
は、指定された ConfidenceLevel
と自由度 length(X)-1
を使用してスチューデント t 分布から得られる T スコアです。
サンプルが相対許容誤差内に収まる信頼度。0 から 1 までの数値で指定します。
例
現在のフォルダーに、さまざまな事前割り当てメソッドを比較するクラスベースのテスト preallocationTest.m
を作成します。
classdef preallocationTest < matlab.perftest.TestCase methods (Test) function testOnes(testCase) x = ones(1,1e7); end function testIndexingWithVariable(testCase) id = 1:1e7; x(id) = 1; end function testIndexingOnLHS(testCase) x(1:1e7) = 1; end function testForLoop(testCase) for i=1:1e7 x(i) = 1; end end end end
テスト スイートを作成します。
suite = testsuite("preallocationTest");
可変数のサンプル測定により時間実験を構築して、テストを実行します。
import matlab.perftest.TimeExperiment
experiment = TimeExperiment.limitingSamplingError;
results = run(experiment,suite);
Running preallocationTest .......... .......... .......... ...... Done preallocationTest __________
最初のテストのテスト アクティビティを表示します。このテストについて、パフォーマンス テスト フレームワークは 5 個のウォームアップ測定値 (既定) および 4 個のサンプル測定値を収集しました。4 個のサンプル測定値を収集した後、フレームワークは既定の統計目標値を満たしました。
results(1).TestActivity
ans = 9×12 table Name Passed Failed Incomplete MeasuredTime Objective Timestamp Host Platform Version TestResult RunIdentifier __________________________ ______ ______ __________ ____________ _________ ____________________ ___________ ________ __________________________________ ______________________________ ____________________________________ preallocationTest/testOnes true false false 0.016621 warmup 12-Oct-2022 16:19:12 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult a04b1262-f4c3-4af5-b68e-ae54a6ae24b1 preallocationTest/testOnes true false false 0.016783 warmup 12-Oct-2022 16:19:12 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult a04b1262-f4c3-4af5-b68e-ae54a6ae24b1 preallocationTest/testOnes true false false 0.016685 warmup 12-Oct-2022 16:19:12 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult a04b1262-f4c3-4af5-b68e-ae54a6ae24b1 preallocationTest/testOnes true false false 0.017241 warmup 12-Oct-2022 16:19:12 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult a04b1262-f4c3-4af5-b68e-ae54a6ae24b1 preallocationTest/testOnes true false false 0.017496 warmup 12-Oct-2022 16:19:12 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult a04b1262-f4c3-4af5-b68e-ae54a6ae24b1 preallocationTest/testOnes true false false 0.016733 sample 12-Oct-2022 16:19:12 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult a04b1262-f4c3-4af5-b68e-ae54a6ae24b1 preallocationTest/testOnes true false false 0.016654 sample 12-Oct-2022 16:19:12 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult a04b1262-f4c3-4af5-b68e-ae54a6ae24b1 preallocationTest/testOnes true false false 0.016602 sample 12-Oct-2022 16:19:12 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult a04b1262-f4c3-4af5-b68e-ae54a6ae24b1 preallocationTest/testOnes true false false 0.017102 sample 12-Oct-2022 16:19:12 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult a04b1262-f4c3-4af5-b68e-ae54a6ae24b1
時間実験の構築により、2 個のウォームアップ測定値を収集し、信頼度 90% の範囲で相対許容誤差 10% のサンプル平均値に達するまで、可変回数のテストを実行します。
experiment = TimeExperiment.limitingSamplingError("NumWarmups",2, ... "RelativeMarginOfError",0.10,"ConfidenceLevel",0.90); results = run(experiment,suite);
Running preallocationTest .......... .......... .... Done preallocationTest __________
最初のテストのテスト アクティビティを表示します。このテストについて、フレームワークは 2 個のウォームアップ測定値と 4 個のサンプル測定値を収集しました。4 個のサンプル測定値を収集した後、フレームワークは指定された統計目標値を満たしました。
results(1).TestActivity
ans = 6×12 table Name Passed Failed Incomplete MeasuredTime Objective Timestamp Host Platform Version TestResult RunIdentifier __________________________ ______ ______ __________ ____________ _________ ____________________ ___________ ________ __________________________________ ______________________________ ____________________________________ preallocationTest/testOnes true false false 0.016576 warmup 12-Oct-2022 16:23:04 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult 932317a8-bb61-4cba-945e-082f38eb0ced preallocationTest/testOnes true false false 0.016709 warmup 12-Oct-2022 16:23:04 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult 932317a8-bb61-4cba-945e-082f38eb0ced preallocationTest/testOnes true false false 0.016672 sample 12-Oct-2022 16:23:04 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult 932317a8-bb61-4cba-945e-082f38eb0ced preallocationTest/testOnes true false false 0.017231 sample 12-Oct-2022 16:23:04 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult 932317a8-bb61-4cba-945e-082f38eb0ced preallocationTest/testOnes true false false 0.017646 sample 12-Oct-2022 16:23:04 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult 932317a8-bb61-4cba-945e-082f38eb0ced preallocationTest/testOnes true false false 0.016836 sample 12-Oct-2022 16:23:04 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult 932317a8-bb61-4cba-945e-082f38eb0ced
バージョン履歴
R2016a で導入頻度論的時間実験でウォームアップのためにフレームワークがテスト コードを実行する既定の回数が 4 回から 5 回に増加しました。この変更により、通常、相対許容誤差の目標値を満たすために必要なサンプル数が減ります。
以前の既定値を使用する場合は、コードで値を明示的に指定します。次の表は、4 回のウォームアップ測定を使用してテストを実行するコードの更新方法について例を示しています。
更新前 | 更新後 |
---|---|
import matlab.perftest.TimeExperiment
experiment = TimeExperiment.limitingSamplingError;
results = run(experiment,mySuite); | import matlab.perftest.TimeExperiment experiment = TimeExperiment.limitingSamplingError("NumWarmups",4); results = run(experiment,mySuite); |
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)