Main Content

validatecolor

カラー値の検証

R2020b 以降

    説明

    RGB = validatecolor(colors) は single のカラー値を検証します。カラー値が有効である場合、validatecolor はその色についての等価の RGB 3 成分を返します。validatecolor のチェック基準の 1 つに、1 つの色か複数の色が指定されているかどうかがあります。この構文では、1 つを超える色の指定は無効であり、エラーが発生します。

    RGB = validatecolor(colors,sz) は 1 つの色か複数の色かを検証します。sz'one' として指定して、1 つの色を検証します。'multiple' を指定して、複数の色を検証します。

    すべて折りたたむ

    符号なし 8 ビットのカラー値を検証します。

    RGB = validatecolor(uint8([128 0 255]))
    RGB = 1×3
    
        0.5020         0    1.0000
    
    

    2 つのカラーについての符号なし 16 ビットの値を含む 2 行 3 列の行列を作成します。カラーを検証します。

    c = uint16([32768 0 65535; 0 65535 0]);
    RGB = validatecolor(c,'multiple')
    RGB = 2×3
    
        0.5000         0    1.0000
             0    1.0000         0
    
    

    3 つの色名を検証します。

    RGB = validatecolor({'red','green','blue'},'multiple')
    RGB = 3×3
    
         1     0     0
         0     1     0
         0     0     1
    
    

    3 つの 16 進数カラー コードを検証します。

    RGB = validatecolor({'#8000FF','#0F0','#FF9900'},'multiple')
    RGB = 3×3
    
        0.5020         0    1.0000
             0    1.0000         0
        1.0000    0.6000         0
    
    

    y 座標の配列としての y と、ラインの色としての linecolors を受け取る plotlines という関数を定義します。関数は y に色付きの値のライン プロットを作成します。

    関数内で、関数 validatecolor を呼び出して linecolors の有効性をチェックします。'multiple' オプションを指定して、ユーザーに 1 つ以上の色の指定を許可します。色が無効である場合、validatecolor はエラー メッセージを表示します。それ以外の場合は、等価の RGB 3 成分配列を返します。次に RGB 配列のサイズを使用して、ライン間での色の分布を決定します。

    関数を plotlines.m として書き込み可能なフォルダーに保存します。

    function plotlines(y,linecolors)
    % Plot colored lines.
    p = plot(y);
    
    % Check for valid color values
    RGB = validatecolor(linecolors,'multiple');
    
    % Use RGB array in a calculation
    ncolors = size(RGB,1);
    nlines = numel(p);
    nupdate = min(ncolors,nlines);
    for n = 1:nupdate
        p(n).Color = RGB(n,:);
    end
    

    関数 plotlines を呼び出して、赤色のライン、青色のライン、黒色のラインをプロットします。

    plotlines([0 1 2; 1 2 3],{'red','blue','black'})

    ここで、無効な色の値を指定して関数を呼び出します。この場合、m 行 3 列の配列ではなくスカラー値を指定します。MATLAB® は、関数 validatecolor によって返されるエラー メッセージを表示します。

    plotlines([0 1 2; 1 2 3],255)
    Error using validatecolor (line 50)
    Specify colors as a three-column matrix.
    
    Error in plotlines (line 6)
    RGB = validatecolor(linecolors,'multiple');

    y 座標の配列としての y と、オプションのカラー引数としての c を受け取る plotminmax という関数を定義します。関数は y の最小値と最大値で、破線の水平線でライン プロットを作成します。破線は既定で黒色ですが、ユーザーが c 引数を使用して色をカスタマイズできます。

    arguments ブロック内で、関数 validatecolor を使用して c の有効性をチェックします。既定の色として 'black' を定義して、c がオプションの入力となるようにします。次に y をプロットし、色 c を使用して最小値と最大値で水平線を表示します。

    関数を plotminmax.m として書き込み可能なフォルダーに保存します。

    function plotminmax(y,c)
    % Plot lines with horizontal lines indicating min/max of y.
    arguments
        y {mustBeNumeric, mustBeNonempty}  
        c {validatecolor} = 'black'
    end
    
    plot(y)
    
    % Add min and max lines
    ymin = min(y,[],'all');
    ymax = max(y, [],'all');
    yline(ymin,'--','Color',c)
    yline(ymax,'--','Color',c)
    end

    赤色の 16 進数カラー コードを指定して関数 plotminmax を呼び出します。関数は座標軸をプロットし、指定した色で水平線を表示します。

    plotminmax([8.4 2.5 7 3 9.2],'#FF0000')

    無効な色の値を指定して関数を呼び出します。この場合、無効な色の名前を指定します。MATLAB は、関数 validatecolor によって返されるエラーを表示します。

    plotminmax([8.4 2.5 7 3 9.2],'chartreuse')
    Error using plotminmax
    Invalid argument at position 2. 'chartreuse' is not a valid 
    color specification. Valid names include: 'red', 'green', 
    'blue', 'cyan', 'magenta', 'yellow', 'black', and 'white'.
    Valid hexadecimal color codes consist of '#' followed by three 
    or six hexadecimal digits.

    入力引数

    すべて折りたたむ

    検証する色の値。次のいずれかとして指定します。

    • single または double の、[0,1] の範囲の値の 1 行 3 列のベクトル。値は、それぞれ色の赤色、緑色、青色の成分の強度に対応します。

    • 1 行 3 列の符号なし整数のベクトル。整数は、それぞれ色の赤色、緑色、青色の成分の強度に対応します。

    • single または double の値、または符号なし整数の m 行 3 列の行列。行列のそれぞれの行は、色の赤色、緑色、青色の成分の強度を含んでいます。

    • 'red' のような色名を指定する文字ベクトル、または '#F92B30' のような 16 進数カラー コード。

    • 文字ベクトルまたは string 配列の 1 次元 cell 配列。配列の各要素は 'red' のような色名、または '#F92B30' のような 16 進数カラー コードです。

    次の表に、有効な色名を、等価の RGB 3 成分と 16 進数カラー コードとともに示します。

    色名省略名RGB 3 成分16 進数カラー コード外観
    "red""r"[1 0 0]"#FF0000"

    Sample of the color red

    "green""g"[0 1 0]"#00FF00"

    Sample of the color green

    "blue""b"[0 0 1]"#0000FF"

    Sample of the color blue

    "cyan" "c"[0 1 1]"#00FFFF"

    Sample of the color cyan

    "magenta""m"[1 0 1]"#FF00FF"

    Sample of the color magenta

    "yellow""y"[1 1 0]"#FFFF00"

    Sample of the color yellow

    "black""k"[0 0 0]"#000000"

    Sample of the color black

    "white""w"[1 1 1]"#FFFFFF"

    Sample of the color white

    例: RGB = validatecolor(uint8([255 0 0]))

    例: RGB = validatecolor("#FF8800")

    データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | char | string

    サイズ オプション。以下のいずれかとして指定します。

    • 'one' — 1 つの色の値のみを受け入れます。それ以外の場合はエラーを返します。

    • 'multiple' — 1 つ以上の色の値を受け入れます。

    例: RGB = validatecolor(["red" "green"],'multiple')

    出力引数

    すべて折りたたむ

    等価な RGB 値。単一の RGB 3 成分または m 行 3 列の行列内の複数の RGB 3 成分として返されます。RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は [0,1] の範囲になります。たとえば、[1 0 0] は赤色で [0.5 0.5 0.5] グレーの中間色です。

    バージョン履歴

    R2020b で導入