comparison src/data.cc @ 1031:59f5eb2d5eb3

[project @ 1995-01-15 21:11:11 by jwe]
author jwe
date Sun, 15 Jan 1995 21:11:11 +0000
parents dfe01093f657
children eb788d2f49c2
comparison
equal deleted inserted replaced
1030:cfa5473c5f96 1031:59f5eb2d5eb3
590 print_usage ("prod"); 590 print_usage ("prod");
591 591
592 return retval; 592 return retval;
593 } 593 }
594 594
595 DEFUN ("size", Fsize, Ssize, 1, 1, 595 DEFUN ("size", Fsize, Ssize, 2, 1,
596 "[m, n] = size (x): return rows and columns of X") 596 [m, n] = size (x): return rows and columns of X\n\
597 { 597 \n\
598 Octave_object retval; 598 d = size (x): return number of rows and columns of x as a row vector\n\
599 599 \n\
600 int nargin = args.length (); 600 m = size (x, 1): return number of rows in x\n\
601 601 m = size (x, 2): return number of columns in x")
602 if (nargin == 1 && args(0).is_defined ()) 602 {
603 Octave_object retval;
604
605 int nargin = args.length ();
606
607 if (nargin == 1 && nargout < 3)
603 { 608 {
604 int nr = args(0).rows (); 609 int nr = args(0).rows ();
605 int nc = args(0).columns (); 610 int nc = args(0).columns ();
611
606 if (nargout == 0 || nargout == 1) 612 if (nargout == 0 || nargout == 1)
607 { 613 {
608 Matrix m (1, 2); 614 Matrix m (1, 2);
609 m.elem (0, 0) = nr; 615 m.elem (0, 0) = nr;
610 m.elem (0, 1) = nc; 616 m.elem (0, 1) = nc;
613 else if (nargout == 2) 619 else if (nargout == 2)
614 { 620 {
615 retval(1) = (double) nc; 621 retval(1) = (double) nc;
616 retval(0) = (double) nr; 622 retval(0) = (double) nr;
617 } 623 }
618 else 624 }
619 print_usage ("size"); 625 else if (nargin == 2 && nargout < 2)
626 {
627 int nd = NINT (args(1).double_value ());
628
629 if (error_state)
630 error ("size: expecting scalar as second argument");
631 else
632 {
633 if (nd == 1)
634 retval(0) = (double) (args(0).rows ());
635 else if (nd == 2)
636 retval(0) = (double) (args(0).columns ());
637 else
638 error ("size: invalid second argument -- expecting 1 or 2");
639 }
620 } 640 }
621 else 641 else
622 print_usage ("size"); 642 print_usage ("size");
623 643
624 return retval; 644 return retval;