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 на 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