Если все терпит неудачу, вы можете попробовать обратного вызова подпрограммы:
function=ChangeCMap()
CMList=get(CMapList,'string'); %% Read colormap names
CMVal =get(CMapList,'value'); %% Get the index of desired colormap
try
colormap(Ax,CMList{CMVal}); %% Try to set the colormap...
catch Msg %% ... if it fails, then:
if strcmp(Msg.stack.name,'colormap') %% Check if error was caused by colormap function
set(Ax,'colormap`,'jet'); %% set "default" colormap (optional)
indices=1:length(CMList);
set(CMapList,'string',CMList{indices~=CMVal}) %% remove the colormap name thet caused error
else
disp(Msg) %% Print the error message in matlab shell
end
end
end
в этом примере общие переменные CMapList
- обращаться к т его всплывающее меню - и Ax
- ручка осей - ожидается.
Когда функция вызывается, она пытается установить цветовой код. Если он не работает, он установит цветную карту по умолчанию и удалит проблемное имя из меню.
Убедитесь, что первая и последняя цветовые коды не вызовут ошибки, иначе обновление CMapList
должно будет обрабатывать эти параметры.
Вы также можете воспользоваться из того, что каждая цветовая карта имеет свой собственный .m
файл, так что вам не нужно ждать, пока не произойдет ошибка.
CMap='bone'; %% example
if exist(CMap,'file')
colormap(Ax,CMap) %% bone.m exist somewhere in the matlab paths
else
colormap(Ax,'jet') %% bone.m does not exist in the matlab paths
end
Это поднимает одну точку - вы можете определить свои собственные цветовые карты и сделать алгоритм для генерации отсутствуют .m
файлы ...
Действительно. Parula был представлен в MATLAB 2014b, но не в 2014 году. –
Эй! люди дали вам некоторые интересные ответы, подумайте о принятии одного из них как действительного –