Mercurial > octave-nkf
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); |