このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
comparisonPlot
クラス: matlab.perftest.TimeResult
名前空間: matlab.perftest
プロットを作成して、ベースラインと測定テストの結果を比較
構文
説明
cp = comparisonPlot(
は、baseline
,measurement
)baseline
配列と measurement
配列の各 TimeResult
オブジェクトをサンプル測定時間の最小値を使用して視覚的に比較するプロットを作成します。このメソッドは比較プロットを matlab.unittest.measurement.chart.ComparisonPlot
オブジェクトとして返します。
cp = comparisonPlot(
は、指定された統計を使用して比較プロットを作成します。baseline
,measurement
,stat
)
cp = comparisonPlot(___,
は、前述の構文の入力引数の任意の組み合わせに加え、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、Name,Value
)cp = comparisonPlot(baseline,measurement,"Scale","linear")
は、x 軸と y 軸が線形スケールのプロットを作成します。
入力引数
テスト スイートで 1 次時間実験を実行した結果。matlab.perftest.TimeResult
配列として指定します。baseline
は measurement
と同じサイズでなければなりません。
テスト スイートで 2 次時間実験を実行した結果。matlab.perftest.TimeResult
配列として指定します。measurement
は baseline
と同じサイズでなければなりません。
baseline
と measurement
内の各 TimeResult
オブジェクトのサンプル測定時間に適用される統計。"min"
、"max"
、"mean"
、または "median"
として指定します。
データ型: string
| char
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: cp = comparisonPlot(baseline,measurement,SimilarityTolerance=0.05,Scale="linear")
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name
を引用符で囲みます。
例: cp = comparisonPlot(baseline,measurement,"SimilarityTolerance",0.05,"Scale","linear")
比較プロットの x 軸と y 軸のスケール。"log"
または "linear"
として指定します。
データ型: string
| char
類似するパフォーマンス テストのペアについて、統計的比率の 1 からの許容偏差。0
~ 1
の数値として指定します。
SimilarityTolerance
は、比較プロットの影付き領域の境界を指定します。この領域内にあるデータ点は、baseline
と measurement
の類似するエントリを表します。
プロット先の親コンテナー。Figure
、Panel
、Tab
、または TiledChartLayout
オブジェクトとして指定します。
例
リスト要素を昇順に並べ替える 2 つの並べ替えアルゴリズム、バブル ソートとマージ ソートの計算量を可視化します。バブル ソートは、リストを段階的に繰り返し処理し、隣接する要素のペアを比較して、順序が間違っている場合に要素を入れ替える単純なアルゴリズムです。マージ ソートは、並べ替え済みのサブリストをマージして新しく並べ替えられたリストを作成するという簡単な手法を利用した、"分割統治" アルゴリズムです。
現在のフォルダー内の bubbleSort.m
という名前のファイルで、バブル ソート アルゴリズムを実装する関数 bubbleSort
を作成します。
function y = bubbleSort(x) % Sorting algorithm with O(n^2) complexity n = length(x); swapped = true; while swapped swapped = false; for i = 2:n if x(i-1) > x(i) temp = x(i-1); x(i-1) = x(i); x(i) = temp; swapped = true; end end end y = x; end
現在のフォルダー内の mergeSort.m
という名前のファイルで、マージ ソート アルゴリズムを実装する関数 mergeSort
を作成します。
function y = mergeSort(x) % Sorting algorithm with O(n*logn) complexity y = x; % A list of one element is considered sorted if length(x) > 1 mid = floor(length(x)/2); L = x(1:mid); R = x((mid+1):end); % Sort left and right sublists recursively L = mergeSort(L); R = mergeSort(R); % Merge the sorted left (L) and right (R) sublists i = 1; j = 1; k = 1; while i <= length(L) && j <= length(R) if L(i) < R(j) y(k) = L(i); i = i + 1; else y(k) = R(j); j = j + 1; end k = k + 1; end % At this point, either L or R is empty while i <= length(L) y(k) = L(i); i = i + 1; k = k + 1; end while j <= length(R) y(k) = R(j); j = j + 1; k = k + 1; end end end
現在のフォルダー内の SortTest.m
という名前のファイルで、バブル ソートとマージ ソートのアルゴリズムのパフォーマンスを比較するパラメーター化されたテスト クラス SortTest
を作成します。クラスの len
プロパティに、テストに使用するリスト要素の数が格納されます。
classdef SortTest < matlab.perftest.TestCase properties Data SortedData end properties (ClassSetupParameter) % Create 25 logarithmically spaced values between 10^2 and 10^4 len = num2cell(round(logspace(2,4,25))); end methods (TestClassSetup) function ClassSetup(testCase,len) orig = rng; testCase.addTeardown(@rng,orig) rng("default") testCase.Data = rand(1,len); testCase.SortedData = sort(testCase.Data); end end methods (Test) function testBubbleSort(testCase) while testCase.keepMeasuring y = bubbleSort(testCase.Data); end testCase.verifyEqual(y,testCase.SortedData) end function testMergeSort(testCase) while testCase.keepMeasuring y = mergeSort(testCase.Data); end testCase.verifyEqual(y,testCase.SortedData) end end end
testBubbleSort
メソッドに対応するすべてのテストのパフォーマンス テストを実行し、結果を baseline
配列に保存します。実際の結果は、表示されている結果と異なる場合があります。
baseline = runperf("SortTest","ProcedureName","testBubbleSort");
Running SortTest .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .. Done SortTest __________
testMergeSort
メソッドに対応するすべてのテストのパフォーマンス テストを実行し、結果を measurement
配列に保存します。
measurement = runperf("SortTest","ProcedureName","testMergeSort");
Running SortTest .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... ..... Done SortTest __________
baseline
オブジェクトと measurement
オブジェクトの対応ペアごとに、Samples
テーブルの MeasuredTime
列の最小値を視覚的に比較します。この比較プロットでは、ほとんどのデータ点は、影付きの類似領域より下にあるため青色になっています。この結果は、大部分のテストでマージ ソートのパフォーマンスの方が優れていることを示しています。ただし、プロットのオレンジとグレーの点が示すように、ある程度小さいリストではバブル ソートのパフォーマンスがマージ ソートより優れていたり、バブル ソートとマージ ソートのパフォーマンスが同等であったりします。このプロットには、比較の概要として、マージ ソートの方がバブル ソートよりも 80% 速いというレポートが示されています。この値は、すべてのデータ点に対応する向上率の幾何平均です。
cp = comparisonPlot(baseline,measurement);
任意のデータ点をクリックまたはポイントすると、比較されている時間測定結果に関する詳細情報を表示できます。
異なるリストの長さで並べ替えアルゴリズムの最悪のパフォーマンスを調べるには、サンプル測定時間の最大値に基づいて比較プロットを作成します。
cp = comparisonPlot(baseline,measurement,"max");
サンプル測定時間の最大値を比較する場合は、類似性の許容誤差を 0.01
に減らします。
cp = comparisonPlot(baseline,measurement,"max","SimilarityTolerance",0.01);
バージョン履歴
R2019b で導入
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)