Cody

Solution 1217667

Submitted on 21 Jun 2017 by Martin C.
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

Test Suite

Test Status Code Input and Output
1   Pass
assert(isempty(mindiag([])))

x = []

2   Pass
x = randi(100); assert(isequal(mindiag(x),x))

x = 62

3   Pass
x = randi(100,100,1); assert(isequal(mindiag(x),x(end:-1:1)'))

x = 56 100 73 100 75 100 66 100 97 100 98 100 72 100 16 100 60 100 63 100 47 100 79 100 16 100 87 100 34 100 10 100 45 100 20 100 50 100 39 100 11 100 17 100 86 100 47 100 40 100 42 100 75 100 76 100 34 100 39 100 28 100 45 100 50 100 16 100 22 100 97 100 22 100 92 100 40 100 3 100 99 100 14 100 39 100 79 100 93 100 16 100 10 100 90 100 98 100 35 100 10 100 72 100 80 100 22 100 85 100 39 100 77 100 86 100 95 100 4 100 63 100 48 100 50 100 87 100 28 100 13 100 91 100 36 100 77 100 8 100 15 100 88 100 6 100 63 100 98 100 3 100 75 100 25 100 9 100 97 100 96 100 10 100 88 100 57 100 56 100 7 100 75 100 27 100 90 100 73 100 66 100 68 100 5 100 21 100 66 100 97 100 20 100 83 100 36 100 14 100

4   Pass
x = randi(100,1,100); assert(isequal(mindiag(x),x))

x = Columns 1 through 30 47 90 20 64 95 26 92 39 53 84 22 89 71 45 40 58 86 11 80 81 67 8 49 84 12 67 96 69 1 27 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 Columns 31 through 60 99 36 2 64 40 57 65 33 28 98 22 45 88 47 10 40 61 14 51 67 9 28 93 55 66 47 17 28 82 8 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 Columns 61 through 90 16 20 52 71 89 40 48 75 11 31 100 78 16 20 93 50 1 62 79 27 65 81 70 2 22 14 94 90 39 85 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 Columns 91 through 100 31 40 62 86 20 85 100 2 10 72 101 101 101 101 101 101 101 101 101 101

5   Pass
x = eye(2); assert(isequal(mindiag(x),[0 1 0]))

x = 1 0 0 1

6   Pass
x = magic(3); assert(isequal(mindiag(x),[4 3 2 1 6]))

x = 8 1 6 3 5 7 4 9 2

7   Pass
x = flipud(hankel(1:1000)); assert(isequal(mindiag(x),[1:1000,zeros(1,1000-1)]))

x = Columns 1 through 15 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 999 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 998 999 1000 0 0 0 0 0 0 0 0 0 0 0 0 997 998 999 1000 0 0 0 0 0 0 0 0 0 0 0 996 997 998 999 1000 0 0 0 0 0 0 0 0 0 0 995 996 997 998 999 1000 0 0 0 0 0 0 0 0 0 994 995 996 997 998 999 1000 0 0 0 0 0 0 0 0 993 994 995 996 997 998 999 1000 0 0 0 0 0 0 0 992 993 994 995 996 997 998 999 1000 0 0 0 0 0 0 991 992 993 994 995 996 997 998 999 1000 0 0 0 0 0 990 991 992 993 994 995 996 997 998 999 1000 0 0 0 0 989 990 991 992 993 994 995 996 997 998 999 1000 0 0 0 988 989 990 991 992 993 994 995 996 997 998 999 1000 0 0 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 0 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 945 ...

8   Pass
x = toeplitz(1:1000); assert(isequal(mindiag(x),[1000:-1:1,2:1000]))

x = Columns 1 through 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 3 2 1 2 3 4 5 6 7 8 9 10 11 12 13 4 3 2 1 2 3 4 5 6 7 8 9 10 11 12 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 12 11 10 9 8 7 6 5 4 3 2 1 2 3 4 13 12 11 10 9 8 7 6 5 4 3 2 1 2 3 14 13 12 11 10 9 8 7 6 5 4 3 2 1 2 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 56 ...

9   Pass
N = randi(1000); x = fliplr(toeplitz(1:N)); y = ones(1,2*N-1); y(2:2:end) = 2; assert(isequal(mindiag(x),y))

x = Columns 1 through 30 699 698 697 696 695 694 693 692 691 690 689 688 687 686 685 684 683 682 681 680 679 678 677 676 675 674 673 672 671 670 698 697 696 695 694 693 692 691 690 689 688 687 686 685 684 683 682 681 680 679 678 677 676 675 674 673 672 671 670 669 697 696 695 694 693 692 691 690 689 688 687 686 685 684 683 682 681 680 679 678 677 676 675 674 673 672 671 670 669 668 696 695 694 693 692 691 690 689 688 687 686 685 684 683 682 681 680 679 678 677 676 675 674 673 672 671 670 669 668 667 695 694 693 692 691 690 689 688 687 686 685 684 683 682 681 680 679 678 677 676 675 674 673 672 671 670 669 668 667 666 694 693 692 691 690 689 688 687 686 685 684 683 682 681 680 679 678 677 676 675 674 673 672 671 670 669 668 667 666 665 693 692 691 690 689 688 687 686 685 684 683 682 681 680 679 678 677 676 675 674 673 672 671 670 669 668 667 666 665 664 692 691 690 689 688 687 686 685 684 683 682 681 680 679 678 677 676 675 674 673 672 671 670 669 668 667 666 665 664 663 691 690 689 688 687 686 685 684 683 682 681 680 679 678 677 676 675 674 673 672 671 670 669 668 667 666 665 664 663 662 690 689 688 687 686 685 684 683 682 681 680 679 678 677 676 675 674 673 672 671 670 669 668 667 666 665 664 663 662 661 689 688 687 686 685 684 683 682 681 680 679 678 677 676 675 674 673 672 671 670 669 668 667 666 665 664 663 662 661 660 688 687 686 685 684 683 682 681 680 679 678 677 676 675 674 673 672 671 670 669 668 667 666 665 664 663 662 661 660 659 687 686 685 684 683 682 681 680 679 678 677 676 675 674 673 672 671 670 669 668 667 666 665 664 663 662 661 660 659 658 686 685 684 683 682 681 680 679 678 677 676 675 674 673 672 671 670 669 668 667 666 665 664 663 662 661 660 659 658 657 685 684 683 682 681 680 679 678 677 676 675 674 673 672 671 670 669 668 667 666 665 664 663 662 661 660 659 658 657 656 684 683 682 681 680 679 678 677 676 675 674 673 672 671 670 669 668 667 666 665 664 663 662 661 660 659 658 657 656 655 683 682 681 680 679 678 677 676 675 674 673 672 671 670 669 668 667 666 665 664 663 662 661 660 659 658 657 656 655 654 682 681 680 679 678 677 676 675 674 673 672 671 670 669 668 667 666 665 664 663 662 661 660 659 658 657 656 655 654 653 681 680 679 678 677 676 675 674 673 672 671 670 669 668 667 666 665 664 663 662 661 660 659 658 657 656 655 654 653 652 680 679 678 677 676 675 674 673 672 671 670 669 668 667 666 665 664 663 662 661 660 659 658 657 656 655 654 653 652 651 679 678 677 676 675 674 673 672 671 670 669 668 667 666 665 664 663 662 661 660 659 658 657 656 655 654 653 652 651 650 678 677 676 675 674 673 672 671 670 669 668 667 666 665 664 663 662 661 660 659 658 657 656 655 654 653 652 651 650 649 677 676 675 674 673 672 671 670 669 668 667 666 665 664 663 662 661 660 659 658 657 656 655 654 653 652 651 650 649 648 676 675 674 673 672 671 670 669 668 667 666 665 664 663 662 661 660 659 658 657 656 655 654 653 652 651 650 649 648 647 675 674 673 672 671 670 669 668 667 666 665 664 663 662 661 660 659 658 657 656 655 654 653 652 651 650 649 648 647 646 674 673 672 671 670 669 668 667 666 665 664 663 662 661 660 659 658 657 656 655 654 653 652 651 650 649 648 647 646 645 673 672 671 670 669 668 667 666 665 664 663 662 661 660 659 658 657 656 655 654 653 652 651 650 649 648 647 646 645 644 672 671 670 669 668 667 666 665 664 663 662 661 660 659 658 657 656 655 654 653 652 651 650 649 648 647 646 645 644 643 671 670 669 668 667 666 665 664 663 662 661 660 659 658 657 656 655 654 653 652 651 650 649 648 647 646 645 644 643 642 670 669 668 667 666 665 664 663 662 661 660 659 658 657 656 655 654 653 652 651 650 649 648 647 646 645 644 643 642 641 669 668 667 666 665 664 663 662 661 660 659 658 657 656 655 654 653 652 651 650 649 648 647 646 645 644 643 642 641 640 668 667 666 665 664 663 662 661 660 659 658 657 656 655 654 653 652 651 650 649 648 647 646 645 644 643 642 641 640 639 667 666 665 664 663 662 661 660 659 658 657 656 655 654 653 652 651 650 649 648 647 646 645 644 643 642 641 640 639 638 666 665 664 663 662 661 660 659 658 657 656 655 654 653 652 651 650 649 648 647 646 645 644 643 642 641 640 639 638 637 665 664 663 662 661 660 659 658 657 656 655 654 653 652 651 650 649 648 647 646 645 644 643 642 641 640 639 638 637 636 664 663 662 661 660 659 658 657 656 655 654 653 652 651 650 649 648 647 646 645 644 643 642 641 640 639 638 637 636 635 663 662 661 660 659 658 657 656 655 654 653 652 651 650 649 648 647 646 645 644 643 642 641 640 639 638 637 636 635 634 662 661 660 659 658 657 656 655 654 653 652 651 650 649 648 647 646 645 644 643 642 641 640 639 638 637 636 635 634 633 661 660 659 658 657 656 655 654 653 652 651 650 649 648 647 646 645 644 643 642 641 640 639 638 637 636 635 634 633 632 660 659 658 657 656 655 654 653 652 651 650 649 648 647 646 645 644 643 642 641 640 639 638 637 636 635 634 633 632 631 659 658 657 656 655 654 653 652 651 650 649 648 647 646 645 644 643 642 641 640 639 638 637 636 635 634 633 632 631 630 658 657 656 655 654 653 652 651 650 649 648 647 646 645 644 643 642 641 640 639 638 637 636 635 634 633 632 631 630 629 657 656 655 654 653 652 651 650 649 648 647 646 645 644 643 642 641 640 639 638 637 636 635 634 633 632 631 630 629 628 656 655 654 653 652 651 650 649 648 647 646 645 644 643 642 641 640 639 638 637 636 635 634 633 632 631 630 629 628 627 655 654 653 652 651 650 649 648 647 646 645 644 643 642 641 640 639 638 637 636 635 634 633 632 631 630 629 628 627 626 654 653 652 651 650 649 648 647 646 645 644 643 642 641 640 639 638 637 636 635 634 633 632 631 630 629 628 627 626 625 653 652 651 650 649 648 647 646 645 644 643 642 641 640 639 638 637 636 635 634 633 632 631 630 629 628 627 626 625 624 652 651 650 649 648 647 646 645 644 643 642 641 640 639 638 637 636 635 634 633 632 631 630 629 628 627 626 625 624 623 651 650 649 648 647 646 645 644 643 642 641 640 639 638 637 636 635 634 633 632 631 630 629 628 627 626 625 624 623 622 650 649 648 647 646 645 644 643 642 641 640 639 638 637 636 635 634 633 632 631 630 629 628 627 626 625 624 623 622 621 649 648 647 646 645 644 643 642 641 640 639 638 637 636 635 634 633 632 631 630 629 628 627 626 625 624 623 622 621 620 648 647 646 645 644 643 642 641 640 639 638 637 636 635 634 633 632 631 630 629 628 627 626 625 624 623 622 621 620 619 647 646 645 644 643 642 641 640 639 638 637 636 635 634 633 632 631 630 629 628 627 626 625 624 623 622 621 620 619 618 646 645 644 643 642 641 640 639 638 637 636 635 634 633 632 631 630 629 628 627 626 625 624 623 622 621 620 619 618 617 645 644 643 642 641 640 639 638 637 636 635 634 633 632 631 630 629 628 627 626 625 624 623 622 621 620 619 618 617 616 644 643 6...

10   Pass
x = magic(10); x = x(:,1:3); assert(isequal(mindiag(x),[11 10 12 6 5 24 76 4 19 80 7 1]))

x = 92 99 1 98 80 7 4 81 88 85 87 19 86 93 25 17 24 76 23 5 82 79 6 13 10 12 94 11 18 100

11   Pass
x = hankel(-4:0,0:-2:-16); assert(isequal(mindiag(x),[0 -2 -4 -6 -8 -10 -12 -14 -16 -14 -12 -10 -8]))

x = -4 -3 -2 -1 0 -2 -4 -6 -8 -3 -2 -1 0 -2 -4 -6 -8 -10 -2 -1 0 -2 -4 -6 -8 -10 -12 -1 0 -2 -4 -6 -8 -10 -12 -14 0 -2 -4 -6 -8 -10 -12 -14 -16