add two colormap C = cmap_add(cmap1,cmap2,add_mode) returns colormap matrix cmap_add(cmap1,cmap2,add_mode) set colormap --- Input cmap1 : colormap 1 [N1 x 3] cmap2 : colormap 2 [N2 x 3] add_mode : normalization mode =0 : if RGB value > 1, it is set to 1 =0 : if RGB value > 1, each [R,G,B] is normalized by max value --- Output C : colormap matrix ([R G B] matix) : [NtotalLevel x 3] Masa-aki Sato 2014-10-30 Copyright (C) 2011, ATR All Rights Reserved. License : New BSD License(see VBMEG_LICENSE.txt)
0001 function C = cmap_add(cmap1,cmap2,add_mode) 0002 % add two colormap 0003 % C = cmap_add(cmap1,cmap2,add_mode) 0004 % returns colormap matrix 0005 % cmap_add(cmap1,cmap2,add_mode) 0006 % set colormap 0007 % --- Input 0008 % cmap1 : colormap 1 [N1 x 3] 0009 % cmap2 : colormap 2 [N2 x 3] 0010 % add_mode : normalization mode 0011 % =0 : if RGB value > 1, it is set to 1 0012 % =0 : if RGB value > 1, each [R,G,B] is normalized by max value 0013 % 0014 % --- Output 0015 % C : colormap matrix ([R G B] matix) : [NtotalLevel x 3] 0016 % 0017 % Masa-aki Sato 2014-10-30 0018 % 0019 % Copyright (C) 2011, ATR All Rights Reserved. 0020 % License : New BSD License(see VBMEG_LICENSE.txt) 0021 0022 if size(cmap1,2) ~= 3, error('Color must be 3 vector'); end; 0023 if size(cmap2,2) ~= 3, error('Color must be 3 vector'); end; 0024 0025 N1 = size(cmap1,1); 0026 N2 = size(cmap2,1); 0027 0028 if N1==N2 0029 C = cmap1 + cmap2; 0030 elseif N1 > N2 0031 C = cmap1 + [cmap2; zeros(N1-N2,3)]; 0032 else 0033 C = cmap2 + [cmap1; zeros(N2-N1,3)]; 0034 end 0035 0036 switch add_mode 0037 case 0 0038 C = min(C,1); 0039 case 1 0040 Cmax = max(C); 0041 Cmax = max(Cmax,1); 0042 0043 C = vb_repmultiply(C, 1./Cmax); 0044 end 0045 0046 if nargout==0 0047 colormap(C); 0048 end