comparison src/data.cc @ 5164:57077d0ddc8e

[project @ 2005-02-25 19:55:24 by jwe]
author jwe
date Fri, 25 Feb 2005 19:55:28 +0000
parents 9eab94f5fadf
children 23b37da9fd5b
comparison
equal deleted inserted replaced
5163:9f3299378193 5164:57077d0ddc8e
535 else if (nr == 1 || nc == 1) 535 else if (nr == 1 || nc == 1)
536 retval = make_diag (m, 0); 536 retval = make_diag (m, 0);
537 else 537 else
538 { 538 {
539 ColumnVector v = m.diag (); 539 ColumnVector v = m.diag ();
540 if (v.capacity () > 0) 540 if (v.numel () > 0)
541 retval = v; 541 retval = v;
542 } 542 }
543 } 543 }
544 else 544 else
545 gripe_wrong_type_arg ("diag", arg); 545 gripe_wrong_type_arg ("diag", arg);
558 else if (nr == 1 || nc == 1) 558 else if (nr == 1 || nc == 1)
559 retval = make_diag (cm, 0); 559 retval = make_diag (cm, 0);
560 else 560 else
561 { 561 {
562 ComplexColumnVector v = cm.diag (); 562 ComplexColumnVector v = cm.diag ();
563 if (v.capacity () > 0) 563 if (v.numel () > 0)
564 retval = v; 564 retval = v;
565 } 565 }
566 } 566 }
567 else 567 else
568 gripe_wrong_type_arg ("diag", arg); 568 gripe_wrong_type_arg ("diag", arg);
727 // and then directly resize. However, for some types there might be 727 // and then directly resize. However, for some types there might be
728 // some additional setup needed, and so this should be avoided. 728 // some additional setup needed, and so this should be avoided.
729 octave_value tmp; 729 octave_value tmp;
730 bool any_strings = false; 730 bool any_strings = false;
731 bool all_strings = true; 731 bool all_strings = true;
732 bool first_non_empty_arg = true;
732 for (int i = 1; i < n_args; i++) 733 for (int i = 1; i < n_args; i++)
733 if (args(i).is_string ()) 734 if (! args (i).all_zero_dims ())
734 any_strings = true; 735 {
735 else 736 if (first_non_empty_arg)
736 all_strings = false; 737 {
737 738 first_non_empty_arg = false;
739 tmp = args (i);
740 }
741
742 if (args(i).is_string ())
743 any_strings = true;
744 else
745 all_strings = false;
746 }
747
738 if (all_strings) 748 if (all_strings)
739 tmp = octave_value (charNDArray (dv, Vstring_fill_char), true); 749 tmp = octave_value (charNDArray (dv, Vstring_fill_char), true);
740 else 750 else
741 tmp = args(1).resize (dim_vector (0,0)).resize (dv); 751 tmp = tmp.resize (dim_vector (0,0)).resize (dv);
742 752
743 if (error_state) 753 if (error_state)
744 return retval; 754 return retval;
745 755
746 Array<int> ra_idx (dv.length (), 0); 756 Array<int> ra_idx (dv.length (), 0);