Home > voicebox > rotqr2mr.m

rotqr2mr

PURPOSE

ROTQR2MR converts a matrix of real quaternion vectors to quaternion matrices

SYNOPSIS

function mr=rotqr2mr(qr)

DESCRIPTION

```ROTQR2MR converts a matrix of real quaternion vectors to quaternion matrices
Inputs:

QR(4m,n)   mxn matrix of real quaternion vectors (each 4x1)

Outputs:

MR(4m,4n)   mxn matrix of real quaternion matrices (each 4x4)

In matrix form, quaternions can be multiplied and added using normal matrix
arithmetic. Each element of an mxn matrix of quaternions is itself a 4x4 block
so the total dimension of MR is 4m x 4n.```

CROSS-REFERENCE INFORMATION

This function calls:
This function is called by:
• qrmult QRMULT multiplies together two real quaternions matrices q=[q1,q2]

SOURCE CODE

```0001 function mr=rotqr2mr(qr)
0002 %ROTQR2MR converts a matrix of real quaternion vectors to quaternion matrices
0003 % Inputs:
0004 %
0005 %     QR(4m,n)   mxn matrix of real quaternion vectors (each 4x1)
0006 %
0007 % Outputs:
0008 %
0009 %     MR(4m,4n)   mxn matrix of real quaternion matrices (each 4x4)
0010 %
0011 % In matrix form, quaternions can be multiplied and added using normal matrix
0012 % arithmetic. Each element of an mxn matrix of quaternions is itself a 4x4 block
0013 % so the total dimension of MR is 4m x 4n.
0014
0015 %
0016 %      Copyright (C) Mike Brookes 2000-2006
0017 %      Version: \$Id: rotqr2mr.m 1615 2012-03-15 09:10:51Z dmb \$
0018 %
0019 %   VOICEBOX is a MATLAB toolbox for speech processing.
0021 %
0022 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0023 %   This program is free software; you can redistribute it and/or modify
0025 %   the Free Software Foundation; either version 2 of the License, or
0026 %   (at your option) any later version.
0027 %
0028 %   This program is distributed in the hope that it will be useful,
0029 %   but WITHOUT ANY WARRANTY; without even the implied warranty of
0030 %   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0031 %   GNU General Public License for more details.
0032 %
0033 %   You can obtain a copy of the GNU General Public License from
0034 %   http://www.gnu.org/copyleft/gpl.html or by writing to
0035 %   Free Software Foundation, Inc.,675 Mass Ave, Cambridge, MA 02139, USA.
0036 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0037 persistent a b c
0038 if isempty(a)
0039     a=[1 2 3 3 1 2];    % destination row of +ve entries (from 0)
0040     b=[1 2 3 2 3 1];    % destination col of +ve entries (from 0)
0041     c=[0 0 0 1 2 3];    % source row of +ve entries (from 0)
0042 end
0043 [m,n]=size(qr);
0044 mr=repmat(qr,4,1);
0045 mn=m*n;
0046 j=repmat(4*m*(0:n-1),m/4,1);
0047 i=repmat((1:4:m)',n,1)+j(:);
0048 ni=length(i);
0049 i6=repmat(i,1,6);
0050 mr(i6+repmat(a+m*b,ni,1))=mr(i6+repmat(c,ni,1));
0051 mr(i6+repmat(c+m*b,ni,1))=-mr(i6+repmat(a,ni,1));
0052 mr=reshape(mr,m,4*n);```

Generated on Mon 06-Aug-2018 14:48:32 by m2html © 2003