matlab.perftest.TimeExperiment.limitingSamplingError

Класс: matlab.perftest.TimeExperiment
Пакет: matlab.perftest

Создайте временной эксперимент для заданного запаса ошибки и доверительного уровня

Описание

пример

experiment = matlab.perftest.TimeExperiment.limitingSamplingError создает временной эксперимент для каждого элемента тестового набора с заданными статистическими целями (такими как запас по ошибку и уровень доверия). Этот метод возвращает образец FrequentistTimeExperiment. Этот синтаксис использует следующие значения по умолчанию, чтобы определить количество выборочных измерений.

  • Количество измерений разогрева: 4

  • Минимальное количество выборок: 4

  • Максимальное количество выборок, собранных в случае, если другие статистические цели не достигнуты: 256

  • Объективный относительный запас ошибки для выборок: 0.05 (5%)

  • Доверие уровня для образцов, чтобы быть в пределах относительного запаса от ошибки: 0,95 (95%)

experiment = matlab.perftest.TimeExperiment.limitingSamplingError(Name,Value) создает временной эксперимент с дополнительными опциями, заданными одним или несколькими Name,Value аргументы в виде пар. Используйте этот синтаксис для переопределения значений по умолчанию, перечисленных выше.

Входные параметры

расширить все

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: experiment = matlab.perftest.TimeExperiment.limitingSamplingError('RelativeMarginOfError',0.12,'MaxSamples',100) создает временной эксперимент, который собирает измерения выборки до тех пор, пока выборки не получат относительный запас ошибки 12%, или пока он не соберет 100 измерений.

Количество измерений разогрева, заданное как неотрицательное целое число. Значение определяет количество раз, когда среда тестирования использует тестовый код, чтобы прогреть его.

Минимальное количество выборочных измерений, заданное как положительное целое число. Значение определяет минимальное количество раз, когда среда тестирования выполняет тестовый код после любых запусков прогрева. Среда тестирования использует тестовый код как минимум MinSamples времени, независимо от того, соответствует ли эксперимент статистическим целям.

Максимальное количество выборочных измерений, заданное как положительное целое число. Значение определяет максимальное количество раз, когда среда тестирования использует тестовый код после NumWarmups. Если эксперимент не соответствует статистическим целям, среда тестирования собирает до MaxSamples.

Целевой относительный запас ошибки для образцов, заданный в виде положительного числа.

Среда тестирования вычисляет относительный запас ошибки для выборки X использование уравнения

relMoE=Tstd (X)среднее (X)длина (X)

где T - T-счет из распределение студента с использованием заданного ConfidenceLevel и length(X)-1 степени свободы.

Доверие уровня для выборок в пределах относительного запаса ошибки, заданный как число от 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;
result = run(experiment,suite);
Running preallocationTest
.......... .......... .......... ..
Done preallocationTest
__________

Просмотр тестовой активности для первого теста. Ваши результаты могут варьироваться.

result(1).TestActivity
ans =

  8×12 table

               Name               Passed    Failed    Incomplete    MeasuredTime    Objective         Timestamp             Host        Platform           Version                      TestResult                          RunIdentifier            
    __________________________    ______    ______    __________    ____________    _________    ____________________    ___________    ________    _____________________    ________________________________    ____________________________________

    preallocationTest/testOnes    true      false       false         0.056052       warmup      05-Oct-2018 10:14:15    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    34fa8e1d-e21f-42b5-83bd-fd104ffcec12
    preallocationTest/testOnes    true      false       false         0.056227       warmup      05-Oct-2018 10:14:15    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    34fa8e1d-e21f-42b5-83bd-fd104ffcec12
    preallocationTest/testOnes    true      false       false         0.055969       warmup      05-Oct-2018 10:14:15    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    34fa8e1d-e21f-42b5-83bd-fd104ffcec12
    preallocationTest/testOnes    true      false       false         0.054961       warmup      05-Oct-2018 10:14:15    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    34fa8e1d-e21f-42b5-83bd-fd104ffcec12
    preallocationTest/testOnes    true      false       false         0.052572       sample      05-Oct-2018 10:14:15    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    34fa8e1d-e21f-42b5-83bd-fd104ffcec12
    preallocationTest/testOnes    true      false       false         0.051743       sample      05-Oct-2018 10:14:15    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    34fa8e1d-e21f-42b5-83bd-fd104ffcec12
    preallocationTest/testOnes    true      false       false         0.051709       sample      05-Oct-2018 10:14:15    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    34fa8e1d-e21f-42b5-83bd-fd104ffcec12
    preallocationTest/testOnes    true      false       false         0.051256       sample      05-Oct-2018 10:14:15    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    34fa8e1d-e21f-42b5-83bd-fd104ffcec12

Для этого теста среда тестирования эффективности собрала 4 прогревочных измерения (по умолчанию) и 11 выборочных измерений. После 11 выборочных измерений среда тестирования эффективности удовлетворяла статистическим целям по умолчанию.

Создайте временной эксперимент, который собирает два измерения прогрева и запускает тесты переменное количество раз, чтобы достичь среднего значения выборки с 10% относительным запасом ошибки в пределах 90% доверия уровня.

experiment = TimeExperiment.limitingSamplingError('NumWarmups',2,...
    'RelativeMarginOfError',0.10, 'ConfidenceLevel', 0.90);
result = run(experiment, suite);
Running preallocationTest
.......... .......... ....
Done preallocationTest
__________

Просмотр тестовой активности для первого теста. Ваши результаты могут варьироваться.

result(1).TestActivity
ans = 
  6×12 table

               Name               Passed    Failed    Incomplete    MeasuredTime    Objective         Timestamp             Host        Platform           Version                      TestResult                          RunIdentifier            
    __________________________    ______    ______    __________    ____________    _________    ____________________    ___________    ________    _____________________    ________________________________    ____________________________________

    preallocationTest/testOnes    true      false       false         0.053963       warmup      05-Oct-2018 10:21:31    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    22e4507c-e12c-4cac-8730-aff65e75a2e1
    preallocationTest/testOnes    true      false       false         0.053086       warmup      05-Oct-2018 10:21:31    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    22e4507c-e12c-4cac-8730-aff65e75a2e1
    preallocationTest/testOnes    true      false       false         0.052502       sample      05-Oct-2018 10:21:31    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    22e4507c-e12c-4cac-8730-aff65e75a2e1
    preallocationTest/testOnes    true      false       false          0.05252       sample      05-Oct-2018 10:21:31    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    22e4507c-e12c-4cac-8730-aff65e75a2e1
    preallocationTest/testOnes    true      false       false         0.052048       sample      05-Oct-2018 10:21:32    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    22e4507c-e12c-4cac-8730-aff65e75a2e1
    preallocationTest/testOnes    true      false       false         0.052434       sample      05-Oct-2018 10:21:32    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    22e4507c-e12c-4cac-8730-aff65e75a2e1

Для этого теста среда тестирования эффективности собрала два измерения прогрева и девять измерений образца. После девяти выборочных измерений среда тестирования эффективности удовлетворяла заданным статистическим целям.

Введенный в R2016a