Mercurial > hg > octave-lyh
annotate scripts/general/num2str.m @ 14554:69eec23c8b3d
allow kron to work for two diag matrix arguments (bug #35647)
* kron.cc (dispatch_kron): Fix recursive call for case of two diagonal
matrix objects as arguments. New tests.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 12 Apr 2012 14:01:39 -0400 |
parents | 34c932e669c8 |
children | 82b0ad43a939 |
rev | line source |
---|---|
14138
72c96de7a403
maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents:
13279
diff
changeset
|
1 ## Copyright (C) 1993-2012 John W. Eaton |
2313 | 2 ## |
3 ## This file is part of Octave. | |
4 ## | |
5 ## Octave is free software; you can redistribute it and/or modify it | |
6 ## under the terms of the GNU General Public License as published by | |
7016 | 7 ## the Free Software Foundation; either version 3 of the License, or (at |
8 ## your option) any later version. | |
2313 | 9 ## |
10 ## Octave is distributed in the hope that it will be useful, but | |
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 ## General Public License for more details. | |
14 ## | |
15 ## You should have received a copy of the GNU General Public License | |
7016 | 16 ## along with Octave; see the file COPYING. If not, see |
17 ## <http://www.gnu.org/licenses/>. | |
245 | 18 |
3361 | 19 ## -*- texinfo -*- |
10793
be55736a0783
Grammarcheck the documentation from m-files.
Rik <octave@nomad.inbox5.com>
parents:
10549
diff
changeset
|
20 ## @deftypefn {Function File} {} num2str (@var{x}) |
4229 | 21 ## @deftypefnx {Function File} {} num2str (@var{x}, @var{precision}) |
22 ## @deftypefnx {Function File} {} num2str (@var{x}, @var{format}) | |
8442
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
23 ## Convert a number (or array) to a string (or a character array). The |
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
24 ## optional second argument may either give the number of significant |
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
25 ## digits (@var{precision}) to be used in the output or a format |
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
26 ## template string (@var{format}) as in @code{sprintf} (@pxref{Formatted |
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
27 ## Output}). @code{num2str} can also handle complex numbers. For |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
28 ## example: |
8442
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
29 ## |
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
30 ## @example |
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
31 ## @group |
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
32 ## num2str (123.456) |
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
33 ## @result{} "123.46" |
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
34 ## |
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
35 ## num2str (123.456, 4) |
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
36 ## @result{} "123.5" |
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
37 ## |
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
38 ## s = num2str ([1, 1.34; 3, 3.56], "%5.1f") |
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
39 ## @result{} s = |
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
40 ## 1.0 1.3 |
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
41 ## 3.0 3.6 |
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
42 ## whos s |
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
43 ## @result{} |
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
44 ## Attr Name Size Bytes Class |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
45 ## ==== ==== ==== ===== ===== |
8442
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
46 ## s 2x8 16 char |
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
47 ## |
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
48 ## num2str (1.234 + 27.3i) |
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
49 ## @result{} "1.234+27.3i" |
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
50 ## @end group |
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
51 ## @end example |
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
52 ## |
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
53 ## The @code{num2str} function is not very flexible. For better control |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
54 ## over the results, use @code{sprintf} (@pxref{Formatted Output}). |
8442
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
55 ## Note that for complex @var{x}, the format string may only contain one |
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
56 ## output conversion specification and nothing else. Otherwise, you |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
57 ## will get unpredictable results. |
8442
502e58a0d44f
Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7540
diff
changeset
|
58 ## @seealso{sprintf, int2str, mat2str} |
3361 | 59 ## @end deftypefn |
4 | 60 |
2314 | 61 ## Author: jwe |
62 | |
4229 | 63 function retval = num2str (x, arg) |
4 | 64 |
4878 | 65 if (nargin != 1 && nargin != 2) |
5947 | 66 print_usage (); |
14538
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
67 elseif (! ismatrix (x)) |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
68 error ("num2str: X must be a numeric, logical, or character array"); |
4878 | 69 endif |
70 | |
5443 | 71 if (ischar (x)) |
4878 | 72 retval = x; |
5947 | 73 elseif (isempty (x)) |
74 retval = ""; | |
14537
f8e041f11b18
num2str.m: Update function to address bug #36117 and bug #36121.
Rik <octave@nomad.inbox5.com>
parents:
14363
diff
changeset
|
75 elseif (isreal (x)) |
f8e041f11b18
num2str.m: Update function to address bug #36117 and bug #36121.
Rik <octave@nomad.inbox5.com>
parents:
14363
diff
changeset
|
76 if (nargin == 2) |
f8e041f11b18
num2str.m: Update function to address bug #36117 and bug #36121.
Rik <octave@nomad.inbox5.com>
parents:
14363
diff
changeset
|
77 if (ischar (arg)) |
f8e041f11b18
num2str.m: Update function to address bug #36117 and bug #36121.
Rik <octave@nomad.inbox5.com>
parents:
14363
diff
changeset
|
78 fmt = arg; |
14538
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
79 elseif (isnumeric (arg) && isscalar (arg) && arg >= 0) |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
80 fmt = sprintf ("%%%d.%dg", arg+7, arg); |
14537
f8e041f11b18
num2str.m: Update function to address bug #36117 and bug #36121.
Rik <octave@nomad.inbox5.com>
parents:
14363
diff
changeset
|
81 else |
14538
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
82 error ("num2str: PRECISION must be a scalar integer >= 0"); |
14537
f8e041f11b18
num2str.m: Update function to address bug #36117 and bug #36121.
Rik <octave@nomad.inbox5.com>
parents:
14363
diff
changeset
|
83 endif |
f8e041f11b18
num2str.m: Update function to address bug #36117 and bug #36121.
Rik <octave@nomad.inbox5.com>
parents:
14363
diff
changeset
|
84 else |
14538
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
85 if (isnumeric (x)) |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
86 ## Setup a suitable format string |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
87 dgt = floor (log10 (max (abs (x(:))))); |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
88 if (any (x(:) != fix (x(:)))) |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
89 ## Floating point input |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
90 dgt = max (dgt + 4, 5); # Keep 4 sig. figures after decimal point |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
91 dgt = min (dgt, 16); # Cap significant digits at 16 |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
92 fmt = sprintf ("%%%d.%dg", dgt+7+any (x(:) < 0), dgt); |
14537
f8e041f11b18
num2str.m: Update function to address bug #36117 and bug #36121.
Rik <octave@nomad.inbox5.com>
parents:
14363
diff
changeset
|
93 else |
14538
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
94 ## Integer input |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
95 dgt = max (dgt + 1, 1); |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
96 ## FIXME: Integers should be masked to show only 16 significant digits |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
97 ## See %!xtest below |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
98 fmt = sprintf ("%%%d.%dg", dgt+2+any (x(:) < 0), dgt); |
14537
f8e041f11b18
num2str.m: Update function to address bug #36117 and bug #36121.
Rik <octave@nomad.inbox5.com>
parents:
14363
diff
changeset
|
99 endif |
f8e041f11b18
num2str.m: Update function to address bug #36117 and bug #36121.
Rik <octave@nomad.inbox5.com>
parents:
14363
diff
changeset
|
100 else |
14538
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
101 ## Logical input |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
102 fmt = "%3d"; |
14537
f8e041f11b18
num2str.m: Update function to address bug #36117 and bug #36121.
Rik <octave@nomad.inbox5.com>
parents:
14363
diff
changeset
|
103 endif |
f8e041f11b18
num2str.m: Update function to address bug #36117 and bug #36121.
Rik <octave@nomad.inbox5.com>
parents:
14363
diff
changeset
|
104 endif |
f8e041f11b18
num2str.m: Update function to address bug #36117 and bug #36121.
Rik <octave@nomad.inbox5.com>
parents:
14363
diff
changeset
|
105 fmt = cstrcat (deblank (repmat (fmt, 1, columns (x))), "\n"); |
f8e041f11b18
num2str.m: Update function to address bug #36117 and bug #36121.
Rik <octave@nomad.inbox5.com>
parents:
14363
diff
changeset
|
106 nd = ndims (x); |
f8e041f11b18
num2str.m: Update function to address bug #36117 and bug #36121.
Rik <octave@nomad.inbox5.com>
parents:
14363
diff
changeset
|
107 tmp = sprintf (fmt, permute (x, [2, 1, 3:nd])); |
14538
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
108 retval = strtrim (char (strsplit (tmp(1:end-1), "\n"))); |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
109 else # Complex matrix input |
4878 | 110 if (nargin == 2) |
5443 | 111 if (ischar (arg)) |
10549 | 112 fmt = cstrcat (arg, "%-+", arg(2:end), "i"); |
14538
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
113 elseif (isnumeric (arg) && isscalar (arg) && arg >= 0) |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
114 fmt = sprintf ("%%%d.%dg%%-+%d.%dgi", arg+7, arg, arg+7, arg); |
4878 | 115 else |
14538
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
116 error ("num2str: PRECISION must be a scalar integer >= 0"); |
4878 | 117 endif |
118 else | |
119 ## Setup a suitable format string | |
14538
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
120 dgt = floor (log10 (max (max (abs (real (x(:)))), |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
121 max (abs (imag (x(:))))))); |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
122 if (any (x(:) != fix (x(:)))) |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
123 ## Floating point input |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
124 dgt = max (dgt + 4, 5); # Keep 4 sig. figures after decimal point |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
125 dgt = min (dgt, 16); # Cap significant digits at 16 |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
126 fmt = sprintf ("%%%d.%dg%%-+%d.%dgi", dgt+7, dgt, dgt+7, dgt); |
4878 | 127 else |
14538
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
128 ## Integer input |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
129 dgt = max (1 + dgt, 1); |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
130 ## FIXME: Integers should be masked to show only 16 significant digits |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
131 ## See %!xtest below |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
132 fmt = sprintf ("%%%d.%dg%%-+%d.%dgi", dgt+2, dgt, dgt+2, dgt); |
4878 | 133 endif |
134 endif | |
135 | |
136 ## Manipulate the complex value to have real values in the odd | |
4914 | 137 ## columns and imaginary values in the even columns. |
14537
f8e041f11b18
num2str.m: Update function to address bug #36117 and bug #36121.
Rik <octave@nomad.inbox5.com>
parents:
14363
diff
changeset
|
138 nc = columns (x); |
4878 | 139 nd = ndims (x); |
12676
2783fa95cab7
Use common code idiom for creating cell array for indexing ND-arrays
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
140 idx = repmat ({':'}, nd, 1); |
14538
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
141 perm(1:2:2*nc) = 1:nc; |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
142 perm(2:2:2*nc) = nc + (1:nc); |
4914 | 143 idx{2} = perm; |
7208 | 144 x = horzcat (real (x), imag (x)); |
4914 | 145 x = x(idx{:}); |
5939 | 146 |
7540
3422f39573b1
strcat.m: Matlab compatibility, with cstrcat.m replacing conventional strcat.m.
Ben Abbott <bpabbott@mac.com>
parents:
7411
diff
changeset
|
147 fmt = cstrcat (deblank (repmat (fmt, 1, nc)), "\n"); |
4914 | 148 tmp = sprintf (fmt, permute (x, [2, 1, 3:nd])); |
4878 | 149 |
150 ## Put the "i"'s where they are supposed to be. | |
14538
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
151 tmp = regexprep (tmp, " +i\n", "i\n"); |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
152 tmp = regexprep (tmp, "( +)i", "i$1"); |
4878 | 153 |
14538
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
154 retval = strtrim (char (strsplit (tmp(1:end-1), "\n"))); |
4 | 155 endif |
156 | |
157 endfunction | |
7411 | 158 |
159 | |
14363
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
160 %!assert (num2str (123), "123") |
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
161 %!assert (num2str (1.23), "1.23") |
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
162 %!assert (num2str (123.456, 4), "123.5") |
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
163 %!assert (num2str ([1, 1.34; 3, 3.56], "%5.1f"), ["1.0 1.3"; "3.0 3.6"]) |
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
164 %!assert (num2str (1.234 + 27.3i), "1.234+27.3i") |
14538
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
165 %!assert (num2str ([true false true]), "1 0 1"); |
14363
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
166 |
14537
f8e041f11b18
num2str.m: Update function to address bug #36117 and bug #36121.
Rik <octave@nomad.inbox5.com>
parents:
14363
diff
changeset
|
167 %!assert (num2str (19440606), "19440606") |
14538
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
168 %!assert (num2str (2^33), "8589934592") |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
169 %!assert (num2str (-2^33), "-8589934592") |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
170 %!assert (num2str (2^33+1i), "8589934592+1i") |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
171 %!assert (num2str (-2^33+1i), "-8589934592+1i") |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
172 |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
173 ## FIXME: Integers greater than bitmax() should be masked to show just |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
174 ## 16 digits of precision. |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
175 %!xtest |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
176 %! assert (num2str (1e23), "100000000000000000000000"); |
14537
f8e041f11b18
num2str.m: Update function to address bug #36117 and bug #36121.
Rik <octave@nomad.inbox5.com>
parents:
14363
diff
changeset
|
177 |
14363
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
178 %!error num2str () |
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
179 %!error num2str (1, 2, 3) |
14538
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
180 %!error <X must be a numeric> num2str ({1}) |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
181 %!error <PRECISION must be a scalar integer> num2str (1, {1}) |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
182 %!error <PRECISION must be a scalar integer> num2str (1, ones (2)) |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
183 %!error <PRECISION must be a scalar integer> num2str (1, -1) |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
184 %!error <PRECISION must be a scalar integer> num2str (1+1i, {1}) |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
185 %!error <PRECISION must be a scalar integer> num2str (1+1i, ones (2)) |
34c932e669c8
num2str.m: Redraft code for better Matlab compatibility.
Rik <octave@nomad.inbox5.com>
parents:
14537
diff
changeset
|
186 %!error <PRECISION must be a scalar integer> num2str (1+1i, -1) |
14363
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
187 |