function map = coolwarm(m) %COOLWARM cool-warm color map % COOLWARM(M) returns an M-by-3 matrix containing a colormap with cool-to-warm % colors, as commonly used in Paraview. % COOLWARM, by itself, is the same length as the current colormap. % % For example, to reset the colormap of the current figure: % % colormap(coolwarm) % % Colormap is based on the colors used by the freeware program Paraview. % The color table used here is CoolWarmUChar33.csv, from % http://www.sandia.gov/~kmorel/documents/ColorMaps/ % Reference: Moreland, Kenneth, 2009, Diverging Color Maps for Scientific % Visualization, in Proceedings of the 5th International Symposium on % Visual Computing. % The Matlab code is after haxby.m by Kelsey Jordahl, Marymount Manhattan % College. % % See also HSV, GRAY, PINK, COOL, BONE, COPPER, FLAG, HOT % COLORMAP, RGBPLOT, HAXBY. % Mark Brandon % Yale University % Time-stamp: %% Check inputs narginchk(0,1); if nargin == 1 validateattributes(m,{'numeric'},{'numel',1}); end %% Begin Function if nargin < 1, m = size(get(gcf,'colormap'),1); end c=[59 76 192; 60 78 194; 61 80 195; 62 81 197; 63 83 198; 64 85 200; 66 87 201; 67 88 203; 68 90 204; 69 92 206; 70 93 207; 71 95 209; 73 97 210; 74 99 211; 75 100 213; 76 102 214; 77 104 215; 79 105 217; 80 107 218; 81 109 219; 82 110 221; 84 112 222; 85 114 223; 86 115 224; 87 117 225; 89 119 226; 90 120 228; 91 122 229; 93 123 230; 94 125 231; 95 127 232; 96 128 233; 98 130 234; 99 131 235; 100 133 236; 102 135 237; 103 136 238; 104 138 239; 106 139 239; 107 141 240; 108 142 241; 110 144 242; 111 145 243; 112 147 243; 114 148 244; 115 150 245; 116 151 246; 118 153 246; 119 154 247; 120 156 247; 122 157 248; 123 158 249; 124 160 249; 126 161 250; 127 163 250; 129 164 251; 130 165 251; 131 167 252; 133 168 252; 134 169 252; 135 171 253; 137 172 253; 138 173 253; 140 174 254; 141 176 254; 142 177 254; 144 178 254; 145 179 254; 147 181 255; 148 182 255; 149 183 255; 151 184 255; 152 185 255; 153 186 255; 155 187 255; 156 188 255; 158 190 255; 159 191 255; 160 192 255; 162 193 255; 163 194 255; 164 195 254; 166 196 254; 167 197 254; 168 198 254; 170 199 253; 171 199 253; 172 200 253; 174 201 253; 175 202 252; 176 203 252; 178 204 251; 179 205 251; 180 205 251; 182 206 250; 183 207 250; 184 208 249; 185 208 248; 187 209 248; 188 210 247; 189 210 247; 190 211 246; 192 212 245; 193 212 245; 194 213 244; 195 213 243; 197 214 243; 198 214 242; 199 215 241; 200 215 240; 201 216 239; 203 216 238; 204 217 238; 205 217 237; 206 217 236; 207 218 235; 208 218 234; 209 219 233; 210 219 232; 211 219 231; 213 219 230; 214 220 229; 215 220 228; 216 220 227; 217 220 225; 218 220 224; 219 220 223; 220 221 222; 221 221 221; 222 220 219; 223 220 218; 224 219 216; 225 219 215; 226 218 214; 227 218 212; 228 217 211; 229 216 209; 230 216 208; 231 215 206; 232 215 205; 232 214 203; 233 213 202; 234 212 200; 235 212 199; 236 211 197; 236 210 196; 237 209 194; 238 209 193; 238 208 191; 239 207 190; 240 206 188; 240 205 187; 241 204 185; 241 203 184; 242 202 182; 242 201 181; 243 200 179; 243 199 178; 244 198 176; 244 197 174; 245 196 173; 245 195 171; 245 194 170; 245 193 168; 246 192 167; 246 191 165; 246 190 163; 246 188 162; 247 187 160; 247 186 159; 247 185 157; 247 184 156; 247 182 154; 247 181 152; 247 180 151; 247 178 149; 247 177 148; 247 176 146; 247 174 145; 247 173 143; 247 172 141; 247 170 140; 247 169 138; 247 167 137; 247 166 135; 246 164 134; 246 163 132; 246 161 131; 246 160 129; 245 158 127; 245 157 126; 245 155 124; 244 154 123; 244 152 121; 244 151 120; 243 149 118; 243 147 117; 242 146 115; 242 144 114; 241 142 112; 241 141 111; 240 139 109; 240 137 108; 239 136 106; 238 134 105; 238 132 103; 237 130 102; 236 129 100; 236 127 99; 235 125 97; 234 123 96; 233 121 95; 233 120 93; 232 118 92; 231 116 90; 230 114 89; 229 112 88; 228 110 86; 227 108 85; 227 106 83; 226 104 82; 225 102 81; 224 100 79; 223 98 78; 222 96 77; 221 94 75; 220 92 74; 218 90 73; 217 88 71; 216 86 70; 215 84 69; 214 82 67; 213 80 66; 212 78 65; 210 75 64; 209 73 62; 208 71 61; 207 69 60; 205 66 59; 204 64 57; 203 62 56; 202 59 55; 200 57 54; 199 54 53; 198 51 52; 196 49 50; 195 46 49; 193 43 48; 192 40 47; 190 37 46; 189 34 45; 188 30 44; 186 26 43; 185 22 41; 183 17 40; 181 11 39; 180 4 38]; %... Interpolate get requested size for color table pp=1:(m-1)/(size(c,1)-1):m; r=interp1(pp,c(:,1),1:m); g=interp1(pp,c(:,2),1:m); b=interp1(pp,c(:,3),1:m); %... Normalize to range [0,1], and divide again by maximum value % to correct for round-off errors associated with the interpolation. map=[r' g' b']/255; map = map/max(map(:));