215
|
1 --- |
|
2 layout: page |
|
3 title: GNU Octave Version 4.2 |
|
4 menu: false |
|
5 permalink: NEWS-4.2.html |
|
6 --- |
|
7 |
|
8 ## Summary of important user-visible changes |
|
9 |
|
10 November 13, 2016 |
|
11 |
|
12 {% include release_news_select.md %} |
|
13 |
|
14 <pre> |
|
15 ** The parser has been extended to accept, but ignore, underscore |
|
16 characters in numbers. This facilitates writing more legible code |
|
17 by using '_' as a thousands separator or to group nibbles into bytes |
|
18 in hex constants. |
|
19 |
|
20 Examples: 1_000_000 == 1e6 or 0xDE_AD_BE_EF |
|
21 |
|
22 ** The parser has been extended to understand binary numbers which |
|
23 begin with the prefix '0b' or '0B'. The value returned is Octave's |
|
24 default numeric class of double, not at unsigned integer class. |
|
25 Therefore numbers greater than flintmax, i.e., 2^53, will lose some |
|
26 precision. |
|
27 |
|
28 Examples: 0b101 == 5 or 0B1100_0001 == 0xC1 |
|
29 |
|
30 ** gnuplot 4.4 is now the minimum version supported by Octave. |
|
31 |
|
32 ** The default set of colors used to plot lines has been updated to be |
|
33 compatible with Matlab's new default color scheme. The line plot |
|
34 color scheme can be set with the axes property "ColorOrder". |
|
35 |
|
36 ** The default colormap is now set to "viridis" which is also the |
|
37 default colormap in matplotlib. This new colormap fixes some of the |
|
38 main issues with the old default colormap "jet" such as its bad |
|
39 "luminance profile" and is also more similar to Matlab's new default |
|
40 colormap "parula". |
|
41 |
|
42 ** The colormap function no longer supports the input argument "list" |
|
43 to show built-in colormaps. Use "help colormap" to find the |
|
44 built-in colormaps. |
|
45 |
|
46 ** The graphics command "hold on" now ensures that each new plot added |
|
47 to an existing plot has a different color or linestyle according to |
|
48 the "ColorOrder" and/or "LineStyleOrder" properties. This is |
|
49 equivalent to the old command "hold all" and was made for Matlab |
|
50 compatibility. Existing code *may* produce differently colored |
|
51 plots if it did not specify the color for a plot and relied on each |
|
52 new plot having the default first color in the "ColorOrder" |
|
53 property. |
|
54 |
|
55 ** When starting, Octave now looks in the function path for a file |
|
56 startup.m and executes any commands found there. This change was |
|
57 made to accommodate Matlab users. Octave has it's own configuration |
|
58 system based on the file .octaverc which is preferred. |
|
59 |
|
60 ** Octal ('\NNN') and hex ('\xNN') escape sequences in single quoted |
|
61 strings are now interpreted by the function do_string_escapes(). |
|
62 The *printf family of functions now supports octal and hex escape |
|
63 sequences in single-quoted strings for Matlab compatibility. |
|
64 |
|
65 ** Special octal and hex escape sequences for the pattern and |
|
66 replacement strings in regular expressions are now interpreted for |
|
67 Matlab compatibility. |
|
68 |
|
69 octal: '\oNNN' or '\o{NNN}' |
|
70 hex : '\xNN' or '\x{NN}' |
|
71 |
|
72 ** Unknown escape sequences in the replacement string for regexprep are |
|
73 now substituted with their unescaped version and no warning is |
|
74 emitted. This change was made for Matlab compatibility. |
|
75 |
|
76 Example: regexprep ('a', 'a', 'x\yz') |
|
77 => 'xyz' |
|
78 |
|
79 ** mkfifo now interprets the MODE argument as an octal, not decimal, |
|
80 integer. This is consistent with the equivalent shell command. |
|
81 |
|
82 ** linspace now returns an empty matrix if the number of requested |
|
83 points is 0 or a negative number. This change was made to be |
|
84 compatible with Matlab releases newer than 2011. In addition, |
|
85 Octave no longer supports matrix inputs for A or B. |
|
86 |
|
87 ** The cov function now returns the complex conjugate of the result |
|
88 from previous versions of Octave. This change was made for |
|
89 compatibility with Matlab. |
|
90 |
|
91 ** condest now works with a normest1 compatible syntax. |
|
92 |
|
93 ** The griddata function no longer plots the interpolated mesh if no |
|
94 output argument is requested, instead the vector or array of |
|
95 interpolated values is always returned for Matlab compatibility. |
|
96 |
|
97 ** The new function "light" and the corresponding graphics object |
|
98 provide light and shadow effects for patch and surface objects. |
|
99 |
|
100 ** The surfnorm function now returns unnormalized (magnitude != 1) |
|
101 normal vectors for compatibility with Matlab. |
|
102 |
|
103 ** The normal vectors returned from isonormals have been reversed to |
|
104 point towards smaller values for compatibility with Matlab. |
|
105 |
|
106 ** The quadl function now uses an absolute, rather than relative, |
|
107 tolerance for Matlab compatibility. The default tolerance is 1e-6 |
|
108 which may result in lower precision results than previous versions |
|
109 of Octave which used eps as the relative tolerance. The quadl |
|
110 function has also been extended to return a second output with the |
|
111 total number of function evaluations. |
|
112 |
|
113 ** The textscan function is now built-in and is much faster and much |
|
114 more Matlab-compatible than the previous m-file version. |
|
115 |
|
116 ** Dialog boxes--errordlg, helpdlg, inputdlg, listdlg, msgbox, |
|
117 questdlg, and warndlg--now exclusively use Qt for rendering. |
|
118 Java based versions have been removed. |
|
119 |
|
120 ** The axes properties "TitleFontSizeMultiplier" and "TitleFontWeight" |
|
121 are now implemented which control the default appearance of text |
|
122 created with title(). |
|
123 The axes property "LabelFontSizeMultiplier" is now implemented |
|
124 which controls the default appearance of text created with |
|
125 xlabel(), ylabel(), or zlabel(). |
|
126 |
|
127 ** The graphics property "box" for axes now defaults to "off". |
|
128 To obtain equivalent plots to previous versions of Octave use |
|
129 set (0, "DefaultAxesBox", "on"); |
|
130 in your .octaverc file. |
|
131 |
|
132 ** The graphics property "boxstyle" has been implemented. The default |
|
133 is "back" which draws only the back planes in a 3-D view. If the |
|
134 option is "full" then all planes are drawn. |
|
135 |
|
136 ** The graphics property "erasemode" has been hidden, and will |
|
137 eventually be removed. This property has also been removed |
|
138 from Matlab, and was never implemented in Octave. |
|
139 |
|
140 ** The graphics property "graphicssmoothing" for figures now controls |
|
141 whether anti-aliasing will be used for lines. The default is "on". |
|
142 |
|
143 ** The value "zero" for the axes properties "xaxislocation" and |
|
144 "yaxislocation" has been deprecated and will be removed from |
|
145 Octave 4.6. Use "origin" instead. |
|
146 |
|
147 ** The publish function allows easy publication of Octave script files |
|
148 in HTML or other formats, including figures and output created by |
|
149 this script. It comes with its counterpart grabcode, which lets one |
|
150 literally grab the HTML published code from a remote website, for |
|
151 example. |
|
152 |
|
153 ** The value of the MEX variable TrapFlag now defaults to 0, which will |
|
154 cause Octave to abort execution of a MEX file and return to the |
|
155 prompt if an error is encountered in mexCallMATLAB. |
|
156 |
|
157 ** The MEX API now includes the function mexCallMATLABWithTrap. This |
|
158 function will not abort if an error occurs during mexCallMATLAB, but |
|
159 instead will return execution to the MEX function for error |
|
160 handling. |
|
161 |
|
162 ** The MEX API functions for input validation that begin with "mxIs" |
|
163 (e.g., mxIsDouble, mxIsEmpty, etc.) now return type bool rather than |
|
164 type int. |
|
165 |
|
166 ** The functions mxAssert and mxAssertS for checking assertions have |
|
167 been added. In order to avoid a performance penalty they are only |
|
168 compiled in to debug versions of a MEX file, i.e., that are produced |
|
169 when the '-g' option is given to mex or mkoctfile. |
|
170 |
|
171 ** Other new MEX API functions include mexEvalStringWithTrap, |
|
172 mxIsScalar, mxCreateUninitNumericArray, mxCreateUninitNumericMatrix. |
|
173 |
|
174 ** Other new functions added in 4.2: |
|
175 |
|
176 audioformats |
|
177 camlight |
|
178 condeig |
|
179 deg2rad |
|
180 dialog |
|
181 evalc |
|
182 hash |
|
183 im2double |
|
184 isocaps |
|
185 lighting |
|
186 localfunctions |
|
187 material |
|
188 normest1 |
|
189 ode23 |
|
190 ode45 |
|
191 odeget |
|
192 odeplot |
|
193 odeset |
|
194 padecoef |
|
195 profexport |
|
196 psi |
|
197 rad2deg |
|
198 reducepatch |
|
199 reducevolume |
|
200 smooth3 |
|
201 uibuttongroup |
|
202 |
|
203 ** Deprecated functions. |
|
204 |
|
205 The following functions have been deprecated in Octave 4.2 and will |
|
206 be removed from Octave 4.6 (or whatever version is the second major |
|
207 release after 4.2): |
|
208 |
|
209 Function | Replacement |
|
210 ---------------------|------------------ |
|
211 bitmax | flintmax |
|
212 mahalanobis | mahal in Octave-Forge statistics pkg |
|
213 md5sum | hash |
|
214 octve_config_info | __octave_config_info__ |
|
215 onenormest | normest1 |
|
216 sleep | pause |
|
217 usleep | pause |
|
218 wavread | audioread |
|
219 wavwrite | audiowrite |
|
220 |
|
221 ** The following functions were deprecated in Octave 3.8 and have been |
|
222 removed from Octave 4.2. |
|
223 |
|
224 default_save_options java_new |
|
225 gen_doc_cache java_unsigned_conversion |
|
226 interp1q javafields |
|
227 isequalwithequalnans javamethods |
|
228 java_convert_matrix re_read_readline_init_file |
|
229 java_debug read_readline_init_file |
|
230 java_invoke saving_history |
|
231 |
|
232 ** The global error_state variable in Octave's C++ API has been |
|
233 deprecated and will be removed in a future version. Now the error |
|
234 and print_usage functions throw an exception |
|
235 (octave::execution_exception) after displaying the error message. |
|
236 This makes the error and print_usage functions in C++ work more like |
|
237 the corresponding functions in the scripting language. |
|
238 |
|
239 ** The default error handlers in liboctave have been updated to use |
|
240 exceptions. After displaying an error message they no longer return |
|
241 control to the calling program. The error handler function can be |
|
242 customized through the global variables |
|
243 "current_liboctave_error_handler" and |
|
244 "current_liboctave_error_with_id_handler". If a programmer has |
|
245 installed their own custom error handling routines when directly |
|
246 linking with liboctave then these must be updated to throw an |
|
247 exception and not return to the calling program. |
|
248 |
|
249 ** The system for common errors and warnings has been renamed from |
|
250 gripe_XXX to either err_XXX if error is called or warn_XXX if |
|
251 warning is called. The gripe_XXX functions are deprecated and will |
|
252 be removed in version 4.6. |
|
253 |
|
254 ** New configure option, --enable-address-sanitizer-flags, to build |
|
255 Octave with memory allocator checks (similar to those in valgrind) |
|
256 built in. |
|
257 </pre> |