3035
|
1 Summary of changes for version 2.1.x: |
2993
|
2 ------------------------------------ |
|
3 |
3273
|
4 * If you are using GNU Emacs 19.34 or earlier, you will need to add |
|
5 the following code to your ~/.emacs file in order to use Emacs |
|
6 Octave mode: |
|
7 |
|
8 ;; Set up the custom library. |
|
9 ;; taken from http://www.dina.kvl.dk/~abraham/custom/ |
|
10 (eval-and-compile |
|
11 (condition-case () |
|
12 (require 'custom) |
|
13 (error nil)) |
|
14 (if (and (featurep 'custom) (fboundp 'custom-declare-variable)) |
|
15 nil ;; We've got what we needed |
|
16 ;; We have the old custom-library, hack around it! |
|
17 (defmacro defgroup (&rest args) |
|
18 nil) |
|
19 (defmacro defcustom (var value doc &rest args) |
|
20 (` (defvar (, var) (, value) (, doc)))))) |
|
21 |
3249
|
22 * When `format +' is in effect, Octave uses the following symbols to |
|
23 provide more information about the values in a matrix: |
|
24 |
|
25 + postive real |
|
26 - negative real |
|
27 i pure imaginary |
|
28 c complex |
|
29 blank zero |
|
30 |
3205
|
31 * The ++ and -- operators now work for indexed matrices, and the |
|
32 following operators now work: |
|
33 |
|
34 +=, -=, *=, /=, \=, <<=, >>=, .*=, ./=, .\=, &=, |= |
|
35 |
|
36 These operators are currently implemented using a relatively |
|
37 inefficient brute-force method but hey, they work. |
|
38 |
3196
|
39 * The built-in variable argv is now a list of strings instead of a |
|
40 string vector. |
|
41 |
|
42 * The value of LOADPATH set by the environment variable |
|
43 OCTAVE_PATH, the -p or --path command line options, or on the |
|
44 command line is no longer modified to include the default path. |
|
45 Instead it is left as specified. Its default value is now ":", |
|
46 which tells Octave to search the default path, and the new |
|
47 built-in variable DEFAULT_LOADPATH contains the default list of |
|
48 directories to search. |
|
49 |
|
50 * The function file_in_path no longer does any special processing of |
|
51 its PATH argument. To search LOADPATH for files, it is now |
|
52 generally better to use the new function file_in_loadpath. |
|
53 |
3180
|
54 * If fread is given a skip parameter, the skip is performed after |
|
55 the read instead of before (for compatibility with Matlab). |
|
56 |
3189
|
57 * The new built-in variable `crash_dumps_octave_core' controls |
|
58 whether Octave writes user variables to the file `octave-core' |
|
59 when it crashes or is killed by a signal. The default value is 1 |
|
60 (0 if you use --traditional). |
|
61 |
3192
|
62 * If LOADPATH contains a doubled colon, the default path is inserted |
|
63 in its place. This is similar to the substitution that also takes |
|
64 place for leading or trailing colons in the LOADPATH. |
|
65 |
|
66 * Loops of the form `for i = STRING ... endfor' are now allowed. |
|
67 |
|
68 * It is now possible to set the iteration limit for lsode using |
|
69 lsode_options ("step limit", N). |
|
70 |
|
71 * New functions: |
|
72 |
|
73 is_complex -- tell whether a variable is complex |
|
74 rehash -- re-initialize the cache of directories in LOADPATH |
|
75 graw -- send a string to the gnuplot subprocess |
|
76 |
|
77 * New functions from Kurt Hornik's Octave-ci package: |
|
78 |
|
79 In finance (new directory): |
|
80 |
3202
|
81 fv -- future value of an investment |
|
82 fvl -- future value of an initial lump sum investment |
|
83 irr -- internal rate of return of an investment |
|
84 nper -- number of payments needed for amortizing a loan |
|
85 npv -- net present value of a series of payments |
|
86 pmt -- amount of periodic payment needed to amortize a loan |
|
87 pv -- present value of an investment |
|
88 pvl -- present value of an investment that pays off at the end |
|
89 rate -- rate of return of an investment |
|
90 vol -- volatility of financial time series data |
3192
|
91 |
|
92 In linear-algebra: |
|
93 |
3202
|
94 dmult -- rescale the rows of a matrix |
3192
|
95 |
|
96 In signal: |
|
97 |
3202
|
98 arch_fit -- fit an ARCH regression model |
|
99 arch_rnd -- simulate an ARCH process |
|
100 arch_test -- test for conditional heteroscedascity |
|
101 arma_rnd -- simulate an ARMA process |
|
102 autocor -- compute autocorrelations |
|
103 autocov -- compute autocovariances |
|
104 autoreg_matrix -- design matrix for autoregressions |
|
105 bartlett -- coefficients of the Bartlett (triangular) window |
|
106 blackman -- coefficients of the Blackman window |
|
107 diffpara -- estimate the fractional differencing parameter |
|
108 durbinlevinson -- perform one step of the Durbin-Levinson algorithm |
|
109 fractdiff -- compute fractional differences |
|
110 hamming -- coefficients of the Hamming window |
|
111 hanning -- coefficients of the Hanning window |
|
112 hurst -- estimate the Hurst parameter |
|
113 periodogram -- compute the periodogram |
|
114 rectangle_lw -- rectangular lag window |
|
115 rectangle_sw -- rectangular spectral window |
|
116 sinetone -- compute a sine tone |
|
117 sinewave -- compute a sine wave |
|
118 spectral_adf -- spectral density estimation |
|
119 spectral_xdf -- spectral density estimation |
|
120 spencer -- apply Spencer's 15-point MA filter |
|
121 stft -- short-term Fourier transform |
|
122 synthesis -- recover a signal from its short-term Fourier transform |
|
123 triangle_lw -- triangular lag window |
|
124 triangle_sw -- triangular spectral window |
|
125 yulewalker -- fit AR model by Yule-Walker method |
3192
|
126 |
|
127 In statistics/base (new directory): |
|
128 |
3202
|
129 center -- center by subtracting means |
|
130 cloglog -- complementary log-log function |
|
131 cor -- compute correlations |
|
132 cov -- compute covariances |
|
133 cut -- cut data into intervals |
|
134 iqr -- interquartile range |
|
135 kendall -- kendall's rank correlation tau |
|
136 logit -- logit transformation |
|
137 mean -- compute arithmetic, geometric, and harmonic mean |
|
138 meansq -- compute mean square |
|
139 moment -- compute moments |
|
140 ppplot -- perform a PP-plot (probability plot) |
|
141 probit -- probit transformation |
|
142 qqplot -- perform a QQ-plot (quantile plot) |
|
143 range -- compute range |
|
144 ranks -- compute ranks |
|
145 run_count -- count upward runs |
|
146 spearman -- spearman's rank correlation rho |
|
147 statistics -- compute basic statistics |
|
148 studentize -- subtract mean and divide by standard deviation |
|
149 table -- cross tabulation |
|
150 values -- extract unique elements |
|
151 var -- compute variance |
3192
|
152 |
|
153 In statistics/distributions (new directory): |
|
154 |
3202
|
155 beta_cdf -- CDF of the Beta distribution |
|
156 beta_inv -- Quantile function of the Beta distribution |
|
157 beta_pdf -- PDF of the Beta distribution |
|
158 beta_rnd -- Random deviates from the Beta distribution |
|
159 |
|
160 binomial_cdf -- CDF of the binomial distribution |
|
161 binomial_inv -- Quantile function of the binomial distribution |
|
162 binomial_pdf -- PDF of the binomial distribution |
|
163 binomial_rnd -- Random deviates from the binomial distribution |
|
164 |
|
165 cauchy_cdf -- CDF of the Cauchy distribution |
|
166 cauchy_inv -- Quantile function of the Cauchy distribution |
|
167 cauchy_pdf -- PDF of the Cauchy distribution |
|
168 cauchy_rnd -- Random deviates from the Cauchy distribution |
|
169 |
|
170 chisquare_cdf -- CDF of the chi-square distribution |
|
171 chisquare_inv -- Quantile function of the chi-square distribution |
|
172 chisquare_pdf -- PDF of the chi-sqaure distribution |
|
173 chisquare_rnd -- Random deviates from the chi-square distribution |
|
174 |
|
175 discrete_cdf -- CDF of a discrete distribution |
|
176 discrete_inv -- Quantile function of a discrete distribution |
|
177 discrete_pdf -- PDF of a discrete distribution |
|
178 discrete_rnd -- Random deviates from a discrete distribution |
|
179 |
|
180 empirical_cdf -- CDF of the empirical distribution |
|
181 empirical_inv -- Quantile function of the empirical distribution |
|
182 empirical_pdf -- PDF of the empirical distribution |
|
183 empirical_rnd -- Bootstrap samples from the empirical distribution |
|
184 |
|
185 exponential_cdf -- CDF of the exponential distribution |
|
186 exponential_inv -- Quantile function of the exponential distribution |
|
187 exponential_pdf -- PDF of the exponential distribution |
|
188 exponential_rnd -- Random deviates from the exponential distribution |
|
189 |
|
190 f_cdf -- CDF of the F distribution |
|
191 f_inv -- Quantile function of the F distribution |
|
192 f_pdf -- PDF of the F distribution |
|
193 f_rnd -- Random deviates from the F distribution |
|
194 |
|
195 gamma_cdf -- CDF of the Gamma distribution |
|
196 gamma_inv -- Quantile function of the Gamma distribution |
|
197 gamma_pdf -- PDF of the Gamma distribution |
|
198 gamma_rnd -- Random deviates from the Gamma distribution |
|
199 |
|
200 geometric_cdf -- CDF of the geometric distribution |
|
201 geometric_inv -- Quantile function of the geometric distribution |
|
202 geometric_pdf -- PDF of the geometric distribution |
|
203 geometric_rnd -- Random deviates from the geometric distribution |
|
204 |
|
205 hypergeometric_cdf -- CDF of the hypergeometric distribution |
|
206 hypergeometric_inv -- Random deviates from hypergeometric distribution |
|
207 hypergeometric_pdf -- PDF of the hypergeometric distribution |
|
208 hypergeometric_rnd -- Random deviates from hypergeometric distribution |
|
209 |
|
210 kolmogorov_smirnov_cdf -- CDF of the Kolmogorov-Smirnov distribution |
|
211 |
|
212 laplace_cdf -- CDF of the Laplace distribution |
|
213 laplace_inv -- Quantile function of the Laplace distribution |
|
214 laplace_pdf -- PDF of the Laplace distribution |
|
215 laplace_rnd -- Random deviates from the Laplace distribution |
|
216 |
|
217 logistic_cdf -- CDF of the logistic distribution |
|
218 logistic_inv -- Quantile function of the logistic distribution |
|
219 logistic_pdf -- PDF of the logistic distribution |
|
220 logistic_rnd -- Random deviates from the logistic distribution |
|
221 |
|
222 lognormal_cdf -- CDF of the log normal distribution |
|
223 lognormal_inv -- Quantile function of the log normal distribution |
|
224 lognormal_pdf -- PDF of the log normal distribution |
|
225 lognormal_rnd -- Random deviates from the log normal distribution |
|
226 |
|
227 normal_cdf -- CDF of the normal distribution |
|
228 normal_inv -- Quantile function of the normal distribution |
|
229 normal_pdf -- PDF of the normal distribution |
|
230 normal_rnd -- Random deviates from the normal distribution |
|
231 |
|
232 pascal_cdf -- CDF of the Pascal (negative binomial) distribution |
|
233 pascal_inv -- Quantile function of the Pascal distribution |
|
234 pascal_pdf -- PDF of the Pascal (negative binomial) distribution |
|
235 pascal_rnd -- Random deviates from the Pascal distribution |
|
236 |
|
237 poisson_cdf -- CDF of the Poisson distribution |
|
238 poisson_inv -- Quantile function of the Poisson distribution |
|
239 poisson_pdf -- PDF of the Poisson distribution |
|
240 poisson_rnd -- Random deviates from the Poisson distribution |
|
241 |
|
242 stdnormal_cdf -- CDF of the standard normal distribution |
|
243 stdnormal_inv -- Quantile function of standard normal distribution |
|
244 stdnormal_pdf -- PDF of the standard normal distribution |
|
245 stdnormal_rnd -- Random deviates from standard normal distribution |
|
246 |
|
247 t_cdf -- CDF of the t distribution |
|
248 t_inv -- Quantile function of the t distribution |
|
249 t_pdf -- PDF of the t distribution |
|
250 t_rnd -- Random deviates from the t distribution |
|
251 |
|
252 uniform_cdf -- CDF of the uniform distribution |
|
253 uniform_inv -- Quantile function of the uniform distribution |
|
254 uniform_pdf -- PDF of the uniform distribution |
|
255 uniform_rnd -- Random deviates from the uniform distribution |
|
256 |
|
257 weibull_cdf -- CDF of the Weibull distribution |
|
258 weibull_inv -- Quantile function of the Weibull distribution |
|
259 weibull_pdf -- PDF of the Weibull distribution |
|
260 weibull_rnd -- Random deviates from the Weibull distribution |
|
261 |
|
262 wiener_rnd -- Simulate a Wiener process |
3192
|
263 |
|
264 In statistics/models (new directory): |
|
265 |
3202
|
266 logistic_regression -- ordinal logistic regression |
|
267 logistic_regression_derivatives -- derivates of log-likelihood |
|
268 in logistic regression |
|
269 logistic_regression_likelihood -- likelihood in logistic regression |
3192
|
270 |
|
271 In statistics/tests (new directory): |
|
272 |
3202
|
273 anova -- one-way analysis of variance |
|
274 bartlett_test -- bartlett test for homogeneity of variances |
|
275 chisquare_test_homogeneity -- chi-square test for homogeneity |
|
276 chisquare_test_independence -- chi-square test for independence |
|
277 cor_test -- test for zero correlation |
|
278 f_test_regression -- test linear hypotheses in linear |
|
279 regression model |
|
280 hotelling_test -- test for mean of a multivariate normal |
|
281 hotelling_test_2 -- compare means of two multivariate normals |
|
282 kolmogorov_smirnov_test -- one-sample Kolmogorov-Smirnov test |
|
283 kolmogorov_smirnov_test_2 -- two-sample Kolmogorov-Smirnov test |
|
284 kruskal_wallis_test -- kruskal-Wallis test |
|
285 manova -- one-way multivariate analysis of variance |
|
286 mcnemar_test -- mcnemar's test for symmetry |
|
287 prop_test_2 -- compare two proportions |
|
288 run_test -- run test for independence |
|
289 sign_test -- sign test |
|
290 t_test -- student's one-sample t test |
|
291 t_test_2 -- student's two-sample t test |
|
292 t_test_regression -- test one linear hypothesis in linear |
|
293 regression model |
|
294 u_test -- mann-Whitney U-test |
|
295 var_test -- f test to compare two variances |
|
296 welch_test -- welch two-sample t test |
|
297 wilcoxon_test -- wilcoxon signed-rank test |
|
298 z_test -- test for mean of a normal sample with |
|
299 known variance |
|
300 z_test_2 -- compare means of two normal samples with |
|
301 known variances |
3192
|
302 |
3202
|
303 * The save command now accepts the option -append to save the |
3192
|
304 variables at the end of the file, leaving the existing contents. |
|
305 |
|
306 * New command-line option --no-history (also available using the |
|
307 single character option -H) inhibits saving command history. |
|
308 |
|
309 * The mkoctfile script now accepts -DDEF options and passes them on |
|
310 to the C and C++ compilers. |
|
311 |
3174
|
312 * Running `make check' should work now before you run `make install', |
|
313 even if you build a copy of Octave that depends on shared versions |
|
314 of the Octave libraries. |
|
315 |
3243
|
316 * For matrices, x(:) now works and returns a column vector no matter |
|
317 what the value of do_fortran_indexing is. |
3164
|
318 |
3174
|
319 * New keywords __FILE__ and __LINE__ expand to the name of the file |
|
320 that is being read and the current input line number, respectively. |
|
321 |
2977
|
322 * Octave's expression parser is more general and consistent. It is |
|
323 now possible to access structure elements and index arbitrary |
|
324 values. For example, expressions like |
|
325 |
|
326 my_home_dir = getpwuid (getuid ()) . dir; |
|
327 |
|
328 and |
|
329 |
|
330 svd (x) (1:5) |
|
331 |
|
332 now work. |
|
333 |
2958
|
334 * New built-in variable `print_rhs_assign_val' controls what is |
|
335 printed when an assignment expression is evaluated. If it is |
|
336 zero, the value of the variable on the left hand side (after the |
2983
|
337 assignment) is printed. If it is nonzero, the value of the right |
|
338 hand side (i.e., the result of the expression) is printed. The |
|
339 default value of is zero, so the behavior is the same as in |
|
340 previous versions of Octave. |
2958
|
341 |
2938
|
342 * tmpnam now takes two optional arguments, DIR, and PREFIX. For |
|
343 example, tmpnam ("/foo", "bar-") returns a file name like |
|
344 "/foo/bar-10773baa". If DIR is omitted or empty, the value of the |
|
345 environment variable TMPDIR, or /tmp is used. If PREFIX is |
|
346 omitted, "oct-" is used. |
|
347 |
2958
|
348 * The built-in variable `PWD' has been removed. If you need to get |
2930
|
349 the value of the current working directory, use the pwd() function |
|
350 instead. |
|
351 |
2918
|
352 * New operators. Octave's parser now recognizes the following |
|
353 operators: << >> += -= *= /= .+= .-= .*= ./= &= |= <<= >>=. So |
|
354 far, there are only a few operations defined that actually use |
|
355 them (this should change before 2.1 is released). |
|
356 |
|
357 * New built-in data types: |
|
358 |
|
359 logical: |
|
360 |
|
361 A true value is represented by 1, and false value by 0. |
|
362 Comparison operations like <, <=, ==, >, >=, and != now return |
|
363 logical values. Indexing operations that use zero-one style |
|
364 indexing must now use logical values. You can use the new |
|
365 function logical() to convert a numeric value to a logical |
|
366 value. This avoids the need for the built-in variable |
|
367 `prefer_zero_one_indexing', so it has been removed. Logical |
|
368 values are automatically converted to numeric values where |
|
369 appropriate. |
|
370 |
|
371 file: |
|
372 |
|
373 A file object represents an open Octave stream object. The |
|
374 fopen function now returns a file object instead of an integer. |
|
375 File objects can be converted to integers automatically, and the |
|
376 other functions that work with file ids still work with |
|
377 integers, so this change should be backward compatible. |
|
378 |
|
379 The binary left-shift operator `<<' has been defined to work as |
|
380 in C++ for file objects and built-in types. For example, |
|
381 |
|
382 my_stream = fopen ("foo", "w"); |
|
383 my_stream << "x = " << pi << " marks the spot\n"; |
|
384 |
2922
|
385 writes `x = 3.1416 marks the spot' in the file foo. |
2918
|
386 |
|
387 The built-in variables stdin, stdout, and stderr are now also |
|
388 file objects instead of integers. |
|
389 |
|
390 list: |
|
391 |
|
392 A list is an array of Octave objects. It can be indexed using |
|
393 the normal indexing operator. For example, |
|
394 |
2993
|
395 x = list ([1,2;3,4], 1, "foo"); |
2918
|
396 stdout << x(2) << "\n" |
|
397 1 |
|
398 stdout << x; |
|
399 ( |
|
400 [1] = |
|
401 |
|
402 1 2 |
|
403 3 4 |
|
404 |
|
405 [2] = 1 |
|
406 [3] = foo |
|
407 ) |
|
408 |
|
409 There is currently no special syntax for creating lists; you |
2993
|
410 must use the list function. |
2845
|
411 |
2852
|
412 * Commas in global statements are no longer special. They are now |
|
413 treated as command separators. This removes a conflict in the |
2853
|
414 grammar and is consistent with the way Matlab behaves. The |
|
415 variable `warn_comma_in_global_decl' has been eliminated. |
2852
|
416 |
2845
|
417 * It is now possible to declare static variables that retain their |
|
418 values across function calls. For example, |
|
419 |
|
420 function ncall = f () static n = 0; ncall = ++n; endfunction |
|
421 |
|
422 defines a function that returns the number of times that it has |
|
423 been called. |
2800
|
424 |
2944
|
425 * Within user-defined functions, the new automatic variable `argn' |
|
426 contains the names of the arguments that were passed to the |
|
427 function. For example, |
|
428 |
|
429 function f (...) |
|
430 for i = 1:nargin |
|
431 stdout << "argn(" << i << ") = `" << deblank (argn(i,:)) \ |
|
432 << "' and its value is " << va_arg () << "\n"; |
|
433 endfor |
|
434 endfunction |
|
435 f (1+2, "foo", sin (pi/2)) |
|
436 |
|
437 prints |
|
438 |
|
439 argn(1) = `1 + 2' and its value is 3 |
|
440 argn(2) = `"foo"' and its value is foo |
|
441 argn(3) = `sin (pi)' and its value is 1 |
|
442 |
|
443 on the standard output stream. If nargin is zero, argn is not defined. |
2800
|
444 * Functions like quad, fsolve, and lsode can take either a function |
|
445 name or a simple function body as a string. For example, |
|
446 |
|
447 quad ("sqrt (x)", 0, 1) |
|
448 |
|
449 is equivalent to |
|
450 |
|
451 function y = f (x) y = sqrt (x); endfunction |
|
452 quad ("f", 0, 1) |
|
453 |
2815
|
454 * If the argument to eig() is symmetric, Octave uses the specialized |
|
455 Lapack subroutine for symmetric matrices for a significant |
|
456 increase in performance. |
|
457 |
2851
|
458 * If the argument to lsode that names the user-supplied function is |
|
459 a 2-element string array, the second element is taken as the name |
|
460 of the Jacobian function. The named function should have the |
|
461 following form: |
|
462 |
|
463 JAC = f (X, T) |
|
464 |
|
465 where JAC is the Jacobian matrix of partial derivatives of the |
|
466 right-hand-side functions that define the set of differential |
|
467 equations with respect to the state vector X. |
|
468 |
3107
|
469 * Global variables are now initialized to the empty matrix, for |
|
470 compatibility with Matlab. |
|
471 |
|
472 * Explicit initialization of global variables only happens once. |
|
473 For example, after the following statements are evaluated, g still |
|
474 has the value 1. |
|
475 |
|
476 global g = 1 |
|
477 global g = 2 |
|
478 |
|
479 This is useful for initializing global variables that are used to |
|
480 maintain state information that is shared among several functions. |
|
481 |
2930
|
482 * Structure elements completion on the command line actually works |
|
483 now. |
|
484 |
3105
|
485 * The new built-in variable `fixed_point_format' controls whether |
|
486 Octave uses a scaled fixed-point format for displaying matrices. |
|
487 The default value is 0 unless you use --traditional. |
|
488 |
|
489 * The function sumsq now computes sum (x .* conj (x)) for complex values. |
|
490 |
3131
|
491 * The new built-in variable max_recursion_depth allows you to |
|
492 prevent Octave from attempting infinite recursion. The default |
|
493 value is 256. |
|
494 |
3174
|
495 * Octave now uses kpathsea 3.2. |
3125
|
496 |
2930
|
497 * New configure option, --enable-readline. |
|
498 |
3035
|
499 * New configure option, --enable-static. |
|
500 |
|
501 Summary of changes for version 2.0.7: |
|
502 ------------------------------------ |
|
503 |
|
504 This is a bug-fixing release. There are no new user-visible features. |
|
505 |
|
506 Summary of changes for version 2.0.6: |
|
507 ------------------------------------ |
|
508 |
|
509 This is primarily a bug-fixing release. There are only a few new |
|
510 user-visible features. |
|
511 |
|
512 * The new built-in variable default_eval_print_flag controls whether |
|
513 Octave prints the results of commands executed by eval() that do |
|
514 not end with semicolons. The default is 1. |
|
515 |
|
516 * The new built-in constant OCTAVE_HOME specifies the top-level |
|
517 directory where Octave is installed. |
|
518 |
|
519 * Octave no longer includes functions to work with NPSOL or QPSOL, |
|
520 because they are not free software. |
|
521 |
3174
|
522 * The new built-in variable called kluge_procbuf_delay specifies the |
|
523 number of microseconds to delay in the parent process after |
|
524 forking. By default on gnu-win32 systems, it's set to 500000 (1/2 |
|
525 second). On other systems, the default value is 0. Delaying for |
|
526 a short time in the parent after forking seems to avoid problems |
|
527 in which communicating with subprocesses via pipes would sometimes |
|
528 cause Octave to hang. I doubt that the delay is really the right |
|
529 solution. If anyone has a better idea, I'd love to hear it. |
|
530 |
2745
|
531 Summary of changes for version 2.0.5: |
|
532 ------------------------------------ |
|
533 |
2767
|
534 * A `switch' statement is now available. See the Statements chapter |
|
535 in the manual for details. |
|
536 |
2745
|
537 * Commands like ls, save, and cd may now also be used as formal |
|
538 parameters for functions. |
|
539 |
|
540 * More tests. |
|
541 |
2702
|
542 Summary of changes for version 2.0.4: |
|
543 ------------------------------------ |
|
544 |
|
545 * It is now possible to use commands like ls, save, and cd as simple |
|
546 variable names. They still cannot be used as formal parameters |
|
547 for functions, or as the names of structure variables. Failed |
|
548 assignments leave them undefined (you can recover the orginal |
2704
|
549 function definition using clear). |
|
550 |
|
551 * Is is now possible to invoke commands like ls, save, and cd as |
|
552 normal functions (for example, load ("foo", "x", "y", "z")). |
2702
|
553 |
2666
|
554 Summary of changes for version 2.0.3: |
|
555 ------------------------------------ |
|
556 |
|
557 * The manual has been completely revised and now corresponds much |
|
558 more closely to the features of the current version. |
|
559 |
|
560 * The return value for assignment expressions is now the RHS since |
|
561 that is more consistent with the way other programming languages |
|
562 work. However, Octave still prints the entire LHS value so that |
|
563 |
|
564 x = zeros (1, 2); |
|
565 x(2) = 1 |
|
566 |
|
567 still prints |
|
568 |
|
569 x = |
|
570 |
|
571 0 1 |
|
572 |
|
573 but an assignment like |
|
574 |
|
575 z = x(2) = 1 |
|
576 |
|
577 sets z to 1 (not [ 0, 1 ] as in previous versions of Octave). |
|
578 |
2683
|
579 * It is now much easier to make binary distributions. See the |
|
580 Binary Distributions section of the manual for more details. |
|
581 |
2615
|
582 Summary of changes for version 2.0.2: |
2613
|
583 ------------------------------------ |
|
584 |
2621
|
585 * Octave now stops executing commands from a script file if an error |
|
586 is encountered. |
|
587 |
|
588 * The return, and break commands now cause Octave to quit executing |
|
589 commands from script files. When used in invalid contexts, the |
|
590 break, continue, and return commands are now simply ignored |
|
591 instead of producing parse errors. |
|
592 |
2613
|
593 * size ("") is now [0, 0]. |
|
594 |
2634
|
595 * New functions: |
|
596 |
|
597 sleep -- pause execution for a specified number of seconds |
|
598 usleep -- pause execution for a specified number of microseconds |
|
599 |
2452
|
600 Summary of changes for version 2.0: |
|
601 ---------------------------------- |
|
602 |
2520
|
603 * The set and show commands for setting and displaying gnuplot |
|
604 parameters have been replaced by gset and gshow. This change will |
|
605 probably break lots of things, but it is necessary to allow for |
|
606 compatibility with the Matlab graphics and GUI commands in a |
|
607 future version of Octave. (For now, the old set and show commands |
|
608 do work, but they print an annoying warning message to try to get |
|
609 people to switch to using gset.) |
|
610 |
2581
|
611 * Octave has been mostly ported to Windows NT and Windows 95 using |
|
612 the beta 17 release of the Cygnus GNU-WIN32 tools. Not everything |
|
613 works, but it is usable. See the file README.WINDOWS for more |
|
614 information. |
|
615 |
2580
|
616 * Dynamic linking works on more systems using dlopen() and friends |
|
617 (most modern Unix systems) or shl_load() and friends (HP/UX |
|
618 systems). A simple example is provided in examples/hello.cc. |
|
619 For this feature to work, you must configure Octave with |
|
620 --enable-shared. You may also need to have a shared-library |
|
621 version of libg++ and libstdc++. |
|
622 |
2452
|
623 * New data types can be added to Octave by writing a C++ class. On |
|
624 systems that support dynamic linking, new data types can be added |
|
625 to an already running Octave binary. A simple example appears in |
|
626 the file examples/make_int.cc. Other examples are the standard |
|
627 Octave data types defined in the files src/ov*.{h,cc} and |
2580
|
628 src/op-*.cc. |
2452
|
629 |
|
630 * The configure option --enable-bounds-check turns on bounds |
|
631 checking on element references for Octave's internal array and |
|
632 matrix classes. It's enabled by default. To disable this |
|
633 feature, configure Octave with --disable-bounds-check. |
|
634 |
|
635 * The C-style I/O functions (fopen, fprintf, etc.) have been |
|
636 rewritten to be more compatible with Matlab. The fputs function |
|
637 has also been added. Usage of the *printf functions that was |
|
638 allowed in previous versions of Octave should still work. |
|
639 However, there is no way to make the new versions of the *scanf |
|
640 functions compatible with Matlab *and* previous versions of |
|
641 Octave. An optional argument to the *scanf functions is now |
|
642 available to make them behave in a way that is compatible with |
|
643 previous versions of Octave. |
|
644 |
2511
|
645 * Octave can now read files that contain columns of numbers only, |
|
646 with no header information. The name of the loaded variable is |
|
647 constructed from the file name. Each line in the file must have |
|
648 the same number of elements. |
|
649 |
2452
|
650 * The interface to the pager has changed. The new built-in variable |
|
651 `page_output_immediately' controls when Octave sends output to the |
|
652 pager. If it is nonzero, Octave sends output to the pager as soon |
|
653 as it is available. Otherwise, Octave buffers its output and |
|
654 waits until just before the prompt is printed to flush it to the |
|
655 pager. |
|
656 |
|
657 * Expressions of the form |
|
658 |
|
659 A(i,j) = x |
|
660 |
|
661 where X is a scalar and the indices i and j define a matrix of |
|
662 elements now work as you would expect rather than giving an error. |
|
663 I am told that this is how Matlab 5.0 will behave when it is |
|
664 released. |
|
665 |
|
666 * Indexing of character strings now works. |
|
667 |
|
668 * The echo command has been implemented. |
|
669 |
|
670 * The document command is now a regular function. |
|
671 |
|
672 * New method for handling errors: |
|
673 |
|
674 try |
|
675 BODY |
|
676 catch |
|
677 CLEANUP |
|
678 end_try_catch |
|
679 |
|
680 Where BODY and CLEANUP are both optional and may contain any |
|
681 Octave expressions or commands. The statements in CLEANUP are |
|
682 only executed if an error occurs in BODY. |
|
683 |
|
684 No warnings or error messages are printed while BODY is |
|
685 executing. If an error does occur during the execution of BODY, |
|
686 CLEANUP can access the text of the message that would have been |
|
687 printed in the builtin constant __error_text__. This is the same |
|
688 as eval (TRY, CATCH) (which may now also use __error_text__) but |
|
689 it is more efficient since the commands do not need to be parsed |
|
690 each time the TRY and CATCH statements are evaluated. |
|
691 |
|
692 * Octave no longer parses the help command by grabbing everything |
|
693 after the keyword `help' until a newline character is read. To |
|
694 get help for `;' or `,', now, you need to use the command |
|
695 `help semicolon' or `help comma'. |
|
696 |
|
697 * Octave's parser now does some simple constant folding. This means |
|
698 that expressions like 3*i are now evaluated only once, when a |
|
699 function is compiled, and the right hand side of expressions like |
|
700 a = [1,2;3,4] are treated as true matrix constants rather than |
|
701 lists of elements which must be evaluated each time they are |
|
702 needed. |
|
703 |
|
704 * Built-in variables that can take values of "true" and "false" can |
|
705 now also be set to any nonzero scalar value to indicate "true", |
|
706 and 0 to indicate "false". |
|
707 |
|
708 * New built-in variables `history_file', `history_size', and |
|
709 `saving_history'. |
|
710 |
|
711 * New built-in variable `string_fill_char' specifies the character |
|
712 to fill with when creating arrays of strings. |
|
713 |
|
714 * If the new built-in variable `gnuplot_has_frames' is nonzero, |
|
715 Octave assumes that your copy of gnuplot includes support for |
|
716 multiple plot windows when using X11. |
|
717 |
|
718 If the new built-in variable `gnuplot_has_multiplot' is nonzero, |
|
719 Octave assumes that your copy of gnuplot has the multiplot support |
|
720 that is included in recent 3.6beta releases. |
|
721 |
|
722 The initial values of these variables are determined by configure, |
|
723 but can be changed in your startup script or at the command line |
|
724 in case configure got it wrong, or if you upgrade your gnuplot |
|
725 installation. |
|
726 |
|
727 * The new plot function `figure' allows multiple plot windows when |
|
728 using newer versions of gnuplot with X11. |
|
729 |
|
730 * Octave now notices when the plotter has exited unexpectedly. |
|
731 |
|
732 * New built-in variable `warn_missing_semicolon'. If nonzero, Octave |
|
733 will warn when statements in function definitions don't end in |
|
734 semicolons. The default value is 0. |
|
735 |
|
736 * Octave now attempts to continue after floating point exceptions |
|
737 or out-of-memory errors. |
|
738 |
|
739 * If Octave crashes, it now attempts to save all user-defined |
|
740 variables in a file named `octave-core' in the current directory |
|
741 before exiting. |
|
742 |
|
743 * It is now possible to get the values of individual option settings |
|
744 for the dassl, fsolve, lsode, npsol, qpsol, and quad functions |
|
745 using commands like |
|
746 |
|
747 dassl_reltol = dassl_options ("relative tolerance"); |
|
748 |
|
749 * The svd() function no longer computes the left and right singular |
|
750 matrices unnecessarily. This can significantly improve |
|
751 performance for large matrices if you are just looking for the |
|
752 singular values. |
|
753 |
|
754 * The filter() function is now a built-in function. |
|
755 |
|
756 * New function randn() returns a pseudo-random number from a normal |
|
757 distribution. The rand() and randn() functions have separate |
|
758 seeds and generators. |
|
759 |
|
760 * Octave's command-line arguments are now available in the built-in |
|
761 variable `argv'. The program name is also available in the |
|
762 variables `program_invocation_name' and `program_name'. If |
|
763 executing a script from the command line (e.g., octave foo.m) or |
|
764 using the `#! /bin/octave' hack, the program name is set to the |
|
765 name of the script. |
|
766 |
|
767 * New built-in variable `completion_append_char' used as the |
|
768 character to append to successful command-line completion |
|
769 attempts. The default is " " (a single space). |
|
770 |
|
771 * Octave now uses a modified copy of the readline library from |
|
772 version 1.14.5 of GNU bash. |
|
773 |
|
774 * In prompt strings, `\H' expands to the whole host name. |
|
775 |
|
776 * New built-in variable `beep_on_error'. If nonzero, Octave will try |
|
777 to ring your terminal's bell before printing an error message. |
|
778 The default value is 0. |
|
779 |
2554
|
780 * For functions defined from files, the type command now prints the |
|
781 text of the file. You can still get the text reconstructed from |
|
782 the parse tree by using the new option -t (-transformed). |
|
783 |
2452
|
784 * New command-line argument --traditional sets the following |
|
785 preference variables for compatibility with Matlab: |
|
786 |
|
787 PS1 = ">> " |
|
788 PS2 = "" |
|
789 beep_on_error = 1 |
|
790 default_save_format = "mat-binary" |
|
791 define_all_return_values = 1 |
|
792 do_fortran_indexing = 1 |
|
793 empty_list_elements_ok = 1 |
|
794 implicit_str_to_num_ok = 1 |
|
795 ok_to_lose_imaginary_part = 1 |
|
796 page_screen_output = 0 |
|
797 prefer_column_vectors = 0 |
|
798 prefer_zero_one_indexing = 1 |
|
799 print_empty_dimensions = 0 |
|
800 treat_neg_dim_as_zero = 1 |
|
801 warn_function_name_clash = 0 |
|
802 whitespace_in_literal_matrix = "traditional" |
|
803 |
|
804 * New functions: |
|
805 |
|
806 readdir -- returns names of files in directory as array of strings |
|
807 mkdir -- create a directory |
|
808 rmdir -- remove a directory |
|
809 rename -- rename a file |
|
810 unlink -- delete a file |
|
811 umask -- set permission mask for file creation |
|
812 stat -- get information about a file |
|
813 lstat -- get information about a symbolic link |
2496
|
814 glob -- perform filename globbing |
|
815 fnmatch -- match strings with filename globbing patterns |
2452
|
816 more -- turn the pager on or off |
|
817 gammaln -- alias for lgamma |
|
818 |
|
819 * New audio functions from Andreas Weingessel |
|
820 <Andreas.Weingessel@ci.tuwien.ac.at>. |
|
821 |
2458
|
822 lin2mu -- linear to mu-law encoding |
|
823 loadaudio -- load an audio file to a vector |
|
824 mu2lin -- mu-law to linear encoding |
|
825 playaudio -- play an audio file |
|
826 record -- record sound and store in vector |
|
827 saveaudio -- save a vector as an audio file |
|
828 setaudio -- executes mixer shell command |
2452
|
829 |
|
830 * New plotting functions from Vinayak Dutt. Ones dealing with |
|
831 multiple plots on one page require features from gnuplot 3.6beta |
|
832 (or later). |
|
833 |
|
834 bottom_title -- put title at the bottom of the plot |
|
835 mplot -- multiplot version of plot |
|
836 multiplot -- switch multiple-plot mode on or off |
|
837 oneplot -- return to one plot per page |
|
838 plot_border -- put a border around plots |
|
839 subplot -- position multiple plots on a single page |
|
840 subwindow -- set subwindow position for next plot |
|
841 top_title -- put title at the top of the plot |
|
842 zlabel -- put a label on the z-axis |
|
843 |
|
844 * New string functions |
|
845 |
|
846 bin2dec -- convert a string of ones and zeros to an integer |
|
847 blanks -- create a string of blanks |
|
848 deblank -- delete trailing blanks |
|
849 dec2bin -- convert an integer to a string of ones and zeros |
|
850 dec2hex -- convert an integer to a hexadecimal string |
|
851 findstr -- locate occurrences of one string in another |
|
852 hex2dec -- convert a hexadecimal string to an integer |
|
853 index -- return position of first occurrence a string in another |
|
854 rindex -- return position of last occurrence a string in another |
|
855 split -- divide one string into pieces separated by another |
|
856 str2mat -- create a string matrix from a list of strings |
|
857 strrep -- replace substrings in a string |
|
858 substr -- extract a substring |
|
859 |
|
860 The following functions return a matrix of ones and zeros. |
|
861 Elements that are nonzero indicate that the condition was true for |
|
862 the corresponding character in the string array. |
|
863 |
|
864 isalnum -- letter or a digit |
|
865 isalpha -- letter |
|
866 isascii -- ascii |
|
867 iscntrl -- control character |
|
868 isdigit -- digit |
|
869 isgraph -- printable (but not space character) |
|
870 islower -- lower case |
|
871 isprint -- printable (including space character) |
|
872 ispunct -- punctuation |
|
873 isspace -- whitespace |
|
874 isupper -- upper case |
|
875 isxdigit -- hexadecimal digit |
|
876 |
|
877 These functions return new strings. |
|
878 |
2458
|
879 tolower -- convert to lower case |
|
880 toupper -- convert to upper case |
2452
|
881 |
|
882 * New function, fgetl. Both fgetl and fgets accept an optional |
|
883 second argument that specifies a maximum number of characters to |
|
884 read, and the function fgets is now compatible with Matlab. |
|
885 |
|
886 * Printing in hexadecimal format now works (format hex). It is also |
|
887 possible to print the internal bit representation of a value |
|
888 (format bit). Note that these formats are only implemented for |
|
889 numeric values. |
|
890 |
|
891 * Additional structure features: |
|
892 |
|
893 -- Name completion now works for structures. |
|
894 |
|
895 -- Values and names of structure elements are now printed by |
|
896 default. The new built-in variable `struct_levels_to_print' |
|
897 controls the depth of nested structures to print. The default |
|
898 value is 2. |
|
899 |
|
900 -- New functions: |
|
901 |
|
902 struct_contains (S, NAME) -- returns 1 if S is a structure with |
|
903 element NAME; otherwise returns 0. |
|
904 |
|
905 struct_elements (S) -- returns the names of all elements |
|
906 of structure S in an array of strings. |
|
907 |
|
908 * New io/subprocess functions: |
|
909 |
2458
|
910 fputs -- write a string to a file with no formatting |
|
911 popen2 -- start a subprocess with 2-way communication |
|
912 mkfifo -- create a FIFO special file |
|
913 popen -- open a pipe to a subprocess |
|
914 pclose -- close a pipe from a subprocess |
|
915 waitpid -- check the status of or wait for subprocesses |
2452
|
916 |
|
917 * New time functions: |
|
918 |
2458
|
919 asctime -- format time structure according to local format |
|
920 ctime -- equivalent to `asctime (localtime (TMSTRUCT))' |
|
921 gmtime -- return time structure corresponding to UTC |
|
922 localtime -- return time structure corresponding to local time zone |
|
923 strftime -- print given time structure using specified format |
|
924 time -- return current time |
2452
|
925 |
|
926 The `clock' and `date' functions are now implemented in M-files |
|
927 using these basic functions. |
|
928 |
|
929 * Access to additional Unix system calls: |
|
930 |
|
931 dup2 -- duplicate a file descriptor |
|
932 exec -- replace current process with a new process |
|
933 fcntl -- control open file descriptors |
|
934 fork -- create a copy of the current process |
|
935 getpgrp -- return the process group id of the current process |
|
936 getpid -- return the process id of the current process |
|
937 getppid -- return the process id of the parent process |
2475
|
938 getuid -- return the real user id of the current process |
|
939 getgid -- return the real group id of the current process |
|
940 geteuid -- return the effective user id of the current process |
|
941 getegid -- return the effective group id of the current process |
2452
|
942 pipe -- create an interprocess channel |
|
943 |
|
944 * Other new functions: |
|
945 |
2554
|
946 commutation_matrix -- compute special matrix form |
|
947 duplication_matrix -- compute special matrix form |
|
948 common_size.m -- bring arguments to a common size |
|
949 completion_matches -- perform command completion on string |
2458
|
950 tilde_expand -- perform tilde expansion on string |
2554
|
951 |
|
952 meshgrid -- compatible with Matlab's meshgrid function |
|
953 tmpnam -- replaces octave_tmp_file_name |
|
954 atexit -- register functions to be called when Octave exits |
|
955 putenv -- define an environment variable |
|
956 bincoeff -- compute binomial coefficients |
|
957 nextpow2 -- compute the next power of 2 greater than a number |
|
958 detrend -- remove a best fit polynomial from data |
|
959 erfinv -- inverse error function |
|
960 shift -- perform a circular shift on the elements of a matrix |
|
961 pow2 -- compute 2 .^ x |
|
962 log2 -- compute base 2 logarithms |
|
963 diff -- compute differences of matrix elements |
|
964 vech -- stack columns of a matrix below the diagonal |
|
965 vec -- stack columns of a matrix to form a vector |
|
966 xor -- compute exclusive or |
2452
|
967 |
2459
|
968 * Functions for getting info from the password database on Unix systems: |
|
969 |
|
970 getpwent -- read entry from password-file stream, opening if necessary |
|
971 getpwuid -- search for password entry with matching user ID |
|
972 getpwnam -- search for password entry with matching username |
|
973 setpwent -- rewind the password-file stream |
|
974 endpwent -- close the password-file stream |
|
975 |
2484
|
976 * Functions for getting info from the group database on Unix systems: |
|
977 |
|
978 getgrent -- read entry from group-file stream, opening if necessary |
|
979 getgrgid -- search for group entry with matching group ID |
|
980 getgrnam -- search for group entry with matching group name |
|
981 setgrent -- rewind the pgroup-file stream |
|
982 endgrent -- close the group-file stream |
|
983 |
2452
|
984 * The New function octave_config_info returns a structure containing |
|
985 information about how Octave was configured and compiled. |
|
986 |
|
987 * New function getrusage returns a structure containing system |
|
988 resource usage statistics. The `cputime' function is now defined |
|
989 in an M-file using getrusage. |
|
990 |
|
991 * The info reader is now a separate binary that runs as a |
|
992 subprocess. You still need the info reader distributed with |
|
993 Octave though, because there are some new command-line arguments |
|
994 that are not yet available in the public release of Info. |
|
995 |
|
996 * There is a new built-in variable, INFO_PROGRAM, which is used as |
|
997 the name of the info program to run. Its initial value is |
|
998 $OCTAVE_HOME/lib/octave/VERSION/exec/ARCH/info, but that value can |
|
999 be overridden by the environment variable OCTAVE_INFO_PROGRAM, or |
|
1000 the command line argument --info-program NAME, or by setting the |
|
1001 value of INFO_PROGRAM in a startup script. |
|
1002 |
|
1003 * There is a new built-in variable, EXEC_PATH, which is used as |
|
1004 the list of directories to search when executing subprograms. Its |
|
1005 initial value is taken from the environment variable |
|
1006 OCTAVE_EXEC_PATH (if it exists) or PATH, but that value can be |
|
1007 overridden by the the command line argument --exec-path PATH, or |
|
1008 by setting the value of EXEC_PATH in a startup script. If the |
|
1009 EXEC_PATH begins (ends) with a colon, the directories |
|
1010 $OCTAVE_HOME/lib/octave/VERSION/exec/ARCH and $OCTAVE_HOME/bin are |
|
1011 prepended (appended) to EXEC_PATH (if you don't specify a value |
|
1012 for EXEC_PATH explicitly, these special directories are prepended |
|
1013 to your PATH). |
|
1014 |
|
1015 * If it is present, Octave will now use an `ls-R' database file to |
|
1016 speed up recursive path searching. Octave looks for a file called |
|
1017 ls-R in the directory specified by the environment variable |
|
1018 OCTAVE_DB_DIR. If that is not set but the environment variable |
|
1019 OCTAVE_HOME is set, Octave looks in $OCTAVE_HOME/lib/octave. |
|
1020 Otherwise, Octave looks in the directory $datadir/octave (normally |
|
1021 /usr/local/lib/octave). |
|
1022 |
|
1023 * New examples directory. |
|
1024 |
|
1025 * There is a new script, mkoctfile, that can be used to create .oct |
|
1026 files suitable for dynamic linking. |
|
1027 |
|
1028 * Many more bug fixes. |
|
1029 |
|
1030 * ChangeLogs are now kept in each subdirectory. |
|
1031 |
|
1032 See NEWS.1 for old news. |