MATLAB: Эквивалентное расстояние между метками деления цветовой карты

Учитывая следующий код для построения этой фигуры, code1 строит эту фигуру, используя карту цветов, определенную из функции get_my_color_map. Пока все хорошо, кроме распределения галочки на цветовой полосе. Я не хочу, чтобы это отображалось линейно. Я хочу, чтобы цветовые метки распределялись с эквивалентным пространством между членами этой матрицы:

[-40 -30 -20 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5]

Я просмотрел это, однако понятия не имею, как решить проблему в моем собственном случае.

введите здесь описание изображения

function code1()

[x,y] = meshgrid([-8:.2:8]);
Z = (4+x-0.5*x.*x).*1./(2+sin(-(x.^2+y.^2)/(4*pi)));
C=Z;
surf(x,y,Z,C)
ticks = [-40 -30 -20 -10 -9:5];
mycolormap=get_my_color_map(min(ticks),max(ticks));
colormap(mycolormap);
hC=colorbar;
ticks_string=strread(num2str(ticks),'%s');
set(hC,'YTick',ticks);
set(hC,'YTick',ticks);
set(hC,'ylim',[min(ticks) max(ticks)]);

end

function [ mycolormap ] = get_my_color_map(blue_min,red_max)

    mycolormap=[];

    for k= blue_min:-1 % add blue
        if k>=-10
            blue=-k/10.0*0.7;
        else
            blue=0.7+(-k-10.0)/(-10-blue_min)*0.3;
        end
        mycolormap=[mycolormap; 1-blue, 1-blue, 1]; %#ok<AGROW>
    end
    mycolormap=[mycolormap; 1, 1, 1]; % add white
    for k= +1:red_max % add red
        red=k/red_max;
        mycolormap=[mycolormap; 1, 1-red, 1-red]; %#ok<AGROW>
    end

end

введите здесь описание изображения


person ar2015    schedule 16.03.2016    source источник
comment
вы пытались изменить эту строку вашего кода? ticks = [-40 -30 -20 -10 -9:5];   -  person shamalaia    schedule 16.03.2016
comment
@A_C Как мне это изменить?   -  person ar2015    schedule 16.03.2016
comment
просто поставьте галочку, которую вы хотите отобразить на цветовой полосе. ticks=[-40 -30 -20 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5]   -  person shamalaia    schedule 16.03.2016
comment
@A_C, ты шутишь? Вы пробовали ticks = [-40 -30 -20 -10 -9:5] и видите результаты?   -  person ar2015    schedule 17.03.2016
comment
@duche хорошо. теперь я вижу проблему. не только клещи. очень жаль, что я не скажу вам, как   -  person shamalaia    schedule 17.03.2016