matlab.perftest. TimeExperiment.limitingSamplingError

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

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

Синтаксис

experiment = matlab.perftest.TimeExperiment.limitingSamplingError
experiment = matlab.perftest.TimeExperiment.limitingSamplingError(Name,Value)

Описание

пример

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

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

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

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

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

  • Доверительный уровень для выборок, чтобы быть в относительном пределе погрешности: 0.95 (95%)

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

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

развернуть все

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Имя должно появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

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

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

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

Среда тестирования вычисляет относительный предел погрешности для демонстрационного X с помощью уравнения

relMoE=T∗std (X) среднее значение (X) ∗length (X)

где T является 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 = 

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

    preallocationTest/testOnes    true      false     false         0.049027        warmup       29-Dec-2015 12:43:11    MY-HOSTNAME    win64       9.0.0.320924 (R2016a)    [1x1 matlab.unittest.TestResult]    59d5c772-b55d-4b0c-bb5e-3d938bd88767
    preallocationTest/testOnes    true      false     false         0.043951        warmup       29-Dec-2015 12:43:11    MY-HOSTNAME    win64       9.0.0.320924 (R2016a)    [1x1 matlab.unittest.TestResult]    59d5c772-b55d-4b0c-bb5e-3d938bd88767
    preallocationTest/testOnes    true      false     false         0.053917        warmup       29-Dec-2015 12:43:11    MY-HOSTNAME    win64       9.0.0.320924 (R2016a)    [1x1 matlab.unittest.TestResult]    59d5c772-b55d-4b0c-bb5e-3d938bd88767
    preallocationTest/testOnes    true      false     false         0.031983        warmup       29-Dec-2015 12:43:11    MY-HOSTNAME    win64       9.0.0.320924 (R2016a)    [1x1 matlab.unittest.TestResult]    59d5c772-b55d-4b0c-bb5e-3d938bd88767
    preallocationTest/testOnes    true      false     false         0.025259        sample       29-Dec-2015 12:43:11    MY-HOSTNAME    win64       9.0.0.320924 (R2016a)    [1x1 matlab.unittest.TestResult]    59d5c772-b55d-4b0c-bb5e-3d938bd88767
    preallocationTest/testOnes    true      false     false         0.031734        sample       29-Dec-2015 12:43:11    MY-HOSTNAME    win64       9.0.0.320924 (R2016a)    [1x1 matlab.unittest.TestResult]    59d5c772-b55d-4b0c-bb5e-3d938bd88767
    preallocationTest/testOnes    true      false     false         0.025073        sample       29-Dec-2015 12:43:11    MY-HOSTNAME    win64       9.0.0.320924 (R2016a)    [1x1 matlab.unittest.TestResult]    59d5c772-b55d-4b0c-bb5e-3d938bd88767
    preallocationTest/testOnes    true      false     false         0.024593        sample       29-Dec-2015 12:43:11    MY-HOSTNAME    win64       9.0.0.320924 (R2016a)    [1x1 matlab.unittest.TestResult]    59d5c772-b55d-4b0c-bb5e-3d938bd88767
    preallocationTest/testOnes    true      false     false         0.024708        sample       29-Dec-2015 12:43:11    MY-HOSTNAME    win64       9.0.0.320924 (R2016a)    [1x1 matlab.unittest.TestResult]    59d5c772-b55d-4b0c-bb5e-3d938bd88767
    preallocationTest/testOnes    true      false     false         0.024768        sample       29-Dec-2015 12:43:11    MY-HOSTNAME    win64       9.0.0.320924 (R2016a)    [1x1 matlab.unittest.TestResult]    59d5c772-b55d-4b0c-bb5e-3d938bd88767
    preallocationTest/testOnes    true      false     false         0.024791        sample       29-Dec-2015 12:43:11    MY-HOSTNAME    win64       9.0.0.320924 (R2016a)    [1x1 matlab.unittest.TestResult]    59d5c772-b55d-4b0c-bb5e-3d938bd88767
    preallocationTest/testOnes    true      false     false         0.024675        sample       29-Dec-2015 12:43:11    MY-HOSTNAME    win64       9.0.0.320924 (R2016a)    [1x1 matlab.unittest.TestResult]    59d5c772-b55d-4b0c-bb5e-3d938bd88767
    preallocationTest/testOnes    true      false     false         0.024579        sample       29-Dec-2015 12:43:11    MY-HOSTNAME    win64       9.0.0.320924 (R2016a)    [1x1 matlab.unittest.TestResult]    59d5c772-b55d-4b0c-bb5e-3d938bd88767
    preallocationTest/testOnes    true      false     false         0.024599        sample       29-Dec-2015 12:43:11    MY-HOSTNAME    win64       9.0.0.320924 (R2016a)    [1x1 matlab.unittest.TestResult]    59d5c772-b55d-4b0c-bb5e-3d938bd88767
    preallocationTest/testOnes    true      false     false         0.024858        sample       29-Dec-2015 12:43:11    MY-HOSTNAME    win64       9.0.0.320924 (R2016a)    [1x1 matlab.unittest.TestResult]    59d5c772-b55d-4b0c-bb5e-3d938bd88767

Для этого теста среда тестирования производительности собрала 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 = 

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

    preallocationTest/testOnes    true      false     false          0.02477        warmup       29-Dec-2015 12:56:46    MY-HOSTNAME    win64       9.0.0.320924 (R2016a)    [1x1 matlab.unittest.TestResult]    8acd19f5-6757-4b82-98d4-ada1c04ebe73
    preallocationTest/testOnes    true      false     false         0.046385        warmup       29-Dec-2015 12:56:46    MY-HOSTNAME    win64       9.0.0.320924 (R2016a)    [1x1 matlab.unittest.TestResult]    8acd19f5-6757-4b82-98d4-ada1c04ebe73
    preallocationTest/testOnes    true      false     false         0.040836        sample       29-Dec-2015 12:56:46    MY-HOSTNAME    win64       9.0.0.320924 (R2016a)    [1x1 matlab.unittest.TestResult]    8acd19f5-6757-4b82-98d4-ada1c04ebe73
    preallocationTest/testOnes    true      false     false         0.025888        sample       29-Dec-2015 12:56:46    MY-HOSTNAME    win64       9.0.0.320924 (R2016a)    [1x1 matlab.unittest.TestResult]    8acd19f5-6757-4b82-98d4-ada1c04ebe73
    preallocationTest/testOnes    true      false     false          0.02498        sample       29-Dec-2015 12:56:46    MY-HOSTNAME    win64       9.0.0.320924 (R2016a)    [1x1 matlab.unittest.TestResult]    8acd19f5-6757-4b82-98d4-ada1c04ebe73
    preallocationTest/testOnes    true      false     false          0.02476        sample       29-Dec-2015 12:56:46    MY-HOSTNAME    win64       9.0.0.320924 (R2016a)    [1x1 matlab.unittest.TestResult]    8acd19f5-6757-4b82-98d4-ada1c04ebe73
    preallocationTest/testOnes    true      false     false         0.024958        sample       29-Dec-2015 12:56:46    MY-HOSTNAME    win64       9.0.0.320924 (R2016a)    [1x1 matlab.unittest.TestResult]    8acd19f5-6757-4b82-98d4-ada1c04ebe73
    preallocationTest/testOnes    true      false     false         0.029113        sample       29-Dec-2015 12:56:46    MY-HOSTNAME    win64       9.0.0.320924 (R2016a)    [1x1 matlab.unittest.TestResult]    8acd19f5-6757-4b82-98d4-ada1c04ebe73
    preallocationTest/testOnes    true      false     false         0.024762        sample       29-Dec-2015 12:56:46    MY-HOSTNAME    win64       9.0.0.320924 (R2016a)    [1x1 matlab.unittest.TestResult]    8acd19f5-6757-4b82-98d4-ada1c04ebe73
    preallocationTest/testOnes    true      false     false         0.025303        sample       29-Dec-2015 12:56:46    MY-HOSTNAME    win64       9.0.0.320924 (R2016a)    [1x1 matlab.unittest.TestResult]    8acd19f5-6757-4b82-98d4-ada1c04ebe73
    preallocationTest/testOnes    true      false     false         0.025702        sample       29-Dec-2015 12:56:46    MY-HOSTNAME    win64       9.0.0.320924 (R2016a)    [1x1 matlab.unittest.TestResult]    8acd19f5-6757-4b82-98d4-ada1c04ebe73

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

Введенный в R2016a

Была ли эта тема полезной?