exponenta event banner

validatecolor

Проверка значений цвета

    Описание

    пример

    RGB = validatecolor(colors) проверяет одно значение цвета. Если значение цвета является допустимым, validatecolor возвращает эквивалентный триплет RGB для цвета. Один из критериев validatecolor проверяет, указан ли один или несколько цветов. Для этого синтаксиса указание нескольких цветов недопустимо и приводит к ошибке.

    пример

    RGB = validatecolor(colors,sz) проверяет один или несколько цветов. Определить sz как 'one' для проверки одного цвета. Определить 'multiple' для проверки нескольких цветов.

    Примеры

    свернуть все

    Проверьте неподписанное 8-битное значение цвета.

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

    Создайте матрицу 2 на 3, содержащую неподписанные 16-битные значения для двух цветов. Затем проверьте цвета.

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

    Проверьте три имени цветов.

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

    Проверьте три шестнадцатеричных цветовых кода.

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

    Определение функции с именем plotlines который принимает y в виде массива координат y и linecolors в качестве цветов для линий. Функция создает цветной график линий значений в y.

    В рамках функции проверьте действительность linecolors путем вызова validatecolor функция. Укажите 'multiple' позволяет пользователям указывать один или несколько цветов. Если цвета недопустимы, validatecolor отображает сообщение об ошибке. В противном случае возвращается эквивалентный массив триплетов RGB. Затем используйте размер 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-by-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');

    Определение функции с именем plotminmax который принимает y в виде массива координат y и c в качестве необязательного аргумента цвета. Функция создает график линий с пунктирными горизонтальными линиями при минимальном и максимальном значениях y. Пунктирные линии по умолчанию являются черными, но пользователь может настроить цвет с помощью c аргумент.

    В пределах arguments блок, проверить действительность c с validatecolor функция. Определить '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

    Позвоните в 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.

    Входные аргументы

    свернуть все

    Значения цвета для проверки, указанные как одно из следующих:

    • 1-на-3 вектор single или double значения в диапазоне [0,1], где значения соответствуют интенсивностям красного, зеленого и синего компонентов цвета соответственно.

    • Вектор 1 на 3 целых чисел без знака, где целые числа соответствуют интенсивностям красной, зеленой и синей составляющих цвета соответственно.

    • матрица m-на-3 single или double значения или целые числа без знака, где каждая строка матрицы содержит интенсивности красного, зеленого и синего компонентов цвета.

    • Вектор символов, указывающий имя цвета, например 'red'или шестнадцатеричный цветовой код, например '#F92B30'.

    • 1-D массив ячеек из символьных векторов или строковый массив, где каждый элемент массива является либо именем цвета, например 'red'или шестнадцатеричный цветовой код, например '#F92B30'.

    В следующей таблице перечислены допустимые имена цветов с эквивалентными триплетами RGB и шестнадцатеричными цветовыми кодами.

    Имя цветаКраткое имяТриплет RGBШестнадцатеричный цветовой кодВнешность
    'red''r'[1 0 0]'#FF0000'

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

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

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

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

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

    'black''k'[0 0 0]'#000000'

    'white''w'[1 1 1]'#FFFFFF'

    Пример: RGB = validatecolor(uint8([255 0 0]))

    Пример: RGB = validatecolor("#FF8800")

    Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | char | string

    Параметр «Размер», заданный как один из следующих параметров:

    • 'one' - принимать только одно значение цвета. В противном случае вернитесь к ошибке.

    • 'multiple' - Принять одно или несколько значений цвета.

    Пример: RGB = validatecolor(["red" "green"],'multiple')

    Выходные аргументы

    свернуть все

    Эквивалентные значения RGB, возвращаемые как один триплет RGB или несколько триплетов RGB в матрице m-на-3. Триплет RGB - это трехэлементный вектор строки, элементы которого задают интенсивности красной, зеленой и синей составляющих цвета. Интенсивности находятся в диапазоне [0,1]. Например, [1 0 0] красный, и [0.5 0.5 0.5] - серый средний тон.

    Представлен в R2020b