Mercurial > hg > octave-nkf
annotate scripts/miscellaneous/swapbytes.m @ 12575:d0b799dafede
Grammarcheck files for 3.4.1 release.
author | Rik <octave@nomad.inbox5.com> |
---|---|
date | Mon, 04 Apr 2011 15:33:46 -0700 |
parents | c792872f8942 |
children | 619c1895e3e0 |
rev | line source |
---|---|
11523 | 1 ## Copyright (C) 2007-2011 David Bateman |
6869 | 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. | |
6869 | 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/>. | |
6869 | 18 |
19 ## -*- texinfo -*- | |
20 ## @deftypefn {Function File} {} swapbytes (@var{x}) | |
12575
d0b799dafede
Grammarcheck files for 3.4.1 release.
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
21 ## Swap the byte order on values, converting from little endian to big |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10549
diff
changeset
|
22 ## endian and vice versa. For example: |
6869 | 23 ## |
24 ## @example | |
25 ## @group | |
26 ## swapbytes (uint16 (1:4)) | |
27 ## @result{} [ 256 512 768 1024] | |
28 ## @end group | |
29 ## @end example | |
30 ## | |
31 ## @seealso{typecast, cast} | |
32 ## @end deftypefn | |
33 | |
34 function y = swapbytes (x) | |
35 if (nargin != 1) | |
36 print_usage (); | |
37 endif | |
38 | |
39 clx = class (x); | |
40 if (strcmp (clx, "int8") || strcmp (clx, "uint8") || isempty (x)) | |
41 y = x; | |
42 else | |
43 if (strcmp (clx, "int16") || strcmp (clx, "uint16")) | |
44 nb = 2; | |
45 elseif (strcmp (clx, "int32") || strcmp (clx, "uint32")) | |
46 nb = 4; | |
11149
fe3c3dfc07eb
style fix: break lines before && and ||, not after
John W. Eaton <jwe@octave.org>
parents:
10821
diff
changeset
|
47 elseif (strcmp (clx, "int64") || strcmp (clx, "uint64") |
fe3c3dfc07eb
style fix: break lines before && and ||, not after
John W. Eaton <jwe@octave.org>
parents:
10821
diff
changeset
|
48 || strcmp (clx, "double")) |
6869 | 49 nb = 8; |
50 else | |
51 error ("swapbytes: invalid class of object"); | |
52 endif | |
53 y = reshape (typecast (reshape (typecast (x(:), "uint8"), nb, numel (x)) | |
10549 | 54 ([nb : -1 : 1], :) (:), clx), size(x)); |
6869 | 55 endif |
56 endfunction |