Se tutto fallisce si può provare la routine di callback:
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
In questo esempio le variabili condivise CMapList
- maniglia a t Il menu a comparsa - e Ax
- la maniglia degli assi - sono previsti.
Quando viene chiamata la funzione, tenta di impostare la mappa colori. Se fallisce, imposta la mappa colori predefinita e rimuove il nome problematico dal menu.
Assicurarsi che la prima e l'ultima mappa dei colori non causino errori, altrimenti l'aggiornamento CMapList
dovrà gestire tali opzioni.
Si può anche beneficiare del fatto, che ogni mappa colore ha un proprio file .m
quindi non c'è bisogno di aspettare fino a quando si verifica un errore.
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
Questo solleva un certo punto - è possibile definire i propri mappe di colori e rendere l'algoritmo per generare mancante .m
file ...
Infatti. Parula è stato presentato in MATLAB 2014b ma non nel 2014 al –
Hey! la gente ti ha dato alcune risposte interessanti, considera l'accettazione di una di esse come valida –