source: proiecte/pmake3d/make3d_original/Make3dSingleImageStanford_version0.1/third_party/qtfm/@quaternion/fprintf.m @ 37

Last change on this file since 37 was 37, checked in by (none), 14 years ago

Added original make3d

File size: 1.8 KB
Line 
1function count = fprintf(FID, format, A)
2% FPRINTF Write formatted data to file.
3% (Quaternion overloading of standard Matlab function.)
4%
5% Only one quaternion argument is permitted, unlike the standard
6% Matlab function. The FID parameter may be omitted, in which case
7% the output is sent to the standard output.
8%
9% The output is formatted with one quaternion per line of output.
10% Spaces are automatically inserted between each of the components
11% of each quaternion, and a \n is automatically inserted after each
12% quaternion value output. The format string supplied should therefore
13% not include spaces or \n.
14
15% Copyright © 2005 Stephen J. Sangwine and Nicolas Le Bihan.
16% See the file : Copyright.m for further details.
17
18error(nargchk(2, 3, nargin)), error(nargoutchk(0, 1, nargout))
19
20if nargin == 2
21   
22    % Only two parameters have been supplied. The missing one must
23    % be the FID, since the other two cannot be omitted. Therefore
24    % shuffle the parameters to the right, and supply the default
25    % value for the FID (1 = screen).
26   
27    if ~ischar(FID)
28        error('If only two parameters are given the first must be a format string.');
29    end
30   
31    A      = format;
32    format = FID;
33    fid    = 1;
34end
35
36N = prod(size(A)); % The number of quaternions to be output.
37
38% Output is done from a real array R using the standard Matlab fprintf. To construct
39% R we have to interleave the components of the quaternion array.
40
41A = A.';
42
43if ispure(A)
44    N = N .* 3;
45    R(1 : 3 : N - 2) = x(A);
46    R(2 : 3 : N - 1) = y(A);
47    R(3 : 3 : N    ) = z(A);
48    count = fprintf(FID, [           format ' ' format ' ' format '\n'], R);
49else
50    N = N .* 4;
51    R(1 : 4 : N - 3) = s(A);
52    R(2 : 4 : N - 2) = x(A);
53    R(3 : 4 : N - 1) = y(A);
54    R(4 : 4 : N    ) = z(A);
55    count = fprintf(FID, [format ' ' format ' ' format ' ' format '\n'], R);
56end
Note: See TracBrowser for help on using the repository browser.