From: <par...@us...> - 2012-03-09 16:13:16
|
Revision: 9802 http://octave.svn.sourceforge.net/octave/?rev=9802&view=rev Author: paramaniac Date: 2012-03-09 16:13:10 +0000 (Fri, 09 Mar 2012) Log Message: ----------- quaternion_oo: enable subsref stuff like q(1:2,2).w(2) Modified Paths: -------------- trunk/octave-forge/extra/quaternion_oo/inst/@quaternion/subsref.m Modified: trunk/octave-forge/extra/quaternion_oo/inst/@quaternion/subsref.m =================================================================== --- trunk/octave-forge/extra/quaternion_oo/inst/@quaternion/subsref.m 2012-03-09 11:51:33 UTC (rev 9801) +++ trunk/octave-forge/extra/quaternion_oo/inst/@quaternion/subsref.m 2012-03-09 16:13:10 UTC (rev 9802) @@ -1,4 +1,4 @@ -## Copyright (C) 2010, 2011 Lukas F. Reichlin +## Copyright (C) 2010, 2011, 2012 Lukas F. Reichlin ## ## This program is free software: you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by @@ -18,10 +18,15 @@ ## Author: Lukas Reichlin <luk...@gm...> ## Created: May 2010 -## Version: 0.3 +## Version: 0.4 function ret = subsref (q, s) + if (numel (s) == 0) + ret = q; + return; + endif + switch (s(1).type) case "." # q.w switch (tolower (s(1).subs)) @@ -41,11 +46,12 @@ endswitch case "()" # q(...) - w = subsref (q.w, s); - x = subsref (q.x, s); - y = subsref (q.y, s); - z = subsref (q.z, s); - ret = quaternion (w, x, y, z); + w = subsref (q.w, s(1)); + x = subsref (q.x, s(1)); + y = subsref (q.y, s(1)); + z = subsref (q.z, s(1)); + tmp = quaternion (w, x, y, z); + ret = subsref (tmp, s(2:end)); otherwise error ("quaternion: invalid subscript type '%s'", s(1).type); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |