Cody

# Problem 42635. Maximum of each diagonal

Solution 1217665

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(maxdiag([])))

x = []

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

x = 4

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

x = 81 0 22 0 98 0 59 0 82 0 20 0 14 0 78 0 61 0 87 0 65 0 63 0 87 0 36 0 32 0 55 0 85 0 52 0 7 0 54 0 9 0 1 0 48 0 55 0 82 0 75 0 29 0 66 0 26 0 22 0 81 0 28 0 8 0 22 0 4 0 49 0 11 0 58 0 77 0 95 0 29 0 11 0 98 0 28 0 62 0 53 0 76 0 2 0 14 0 22 0 59 0 59 0 53 0 31 0 20 0 77 0 11 0 32 0 86 0 17 0 74 0 23 0 57 0 84 0 78 0 94 0 46 0 60 0 42 0 43 0 37 0 30 0 2 0 100 0 43 0 87 0 17 0 37 0 14 0 19 0 35 0 67 0 88 0 41 0 34 0 4 0 40 0 13 0 33 0 36 0 92 0 23 0 99 0 73 0 23 0 3 0 40 0 46 0 36 0 79 0

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

x = Columns 1 through 29 41 91 14 88 55 77 48 40 72 97 91 77 12 19 20 30 7 43 50 17 50 73 18 38 41 36 6 83 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 30 through 58 9 37 98 74 43 74 54 34 65 10 64 3 40 63 85 57 67 79 80 86 56 45 26 13 37 93 15 78 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 59 through 87 19 71 52 56 15 19 67 51 97 52 88 96 79 33 66 70 84 77 43 46 48 52 30 96 37 17 72 62 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 88 through 100 97 2 28 62 8 72 7 97 64 60 19 45 68 0 0 0 0 0 0 0 0 0 0 0 0 0

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

x = 1 0 0 1

6   Pass
x = magic(3); assert(isequal(maxdiag(x),[4 9 8 7 6]))

x = 8 1 6 3 5 7 4 9 2

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

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

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

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

9   Pass
N = randi(1000); x = fliplr(toeplitz(1:N)); assert(isequal(maxdiag(x),[1:N,N-1:-1:1]))

x = Columns 1 through 29 611 610 609 608 607 606 605 604 603 602 601 600 599 598 597 596 595 594 593 592 591 590 589 588 587 586 585 584 583 610 609 608 607 606 605 604 603 602 601 600 599 598 597 596 595 594 593 592 591 590 589 588 587 586 585 584 583 582 609 608 607 606 605 604 603 602 601 600 599 598 597 596 595 594 593 592 591 590 589 588 587 586 585 584 583 582 581 608 607 606 605 604 603 602 601 600 599 598 597 596 595 594 593 592 591 590 589 588 587 586 585 584 583 582 581 580 607 606 605 604 603 602 601 600 599 598 597 596 595 594 593 592 591 590 589 588 587 586 585 584 583 582 581 580 579 606 605 604 603 602 601 600 599 598 597 596 595 594 593 592 591 590 589 588 587 586 585 584 583 582 581 580 579 578 605 604 603 602 601 600 599 598 597 596 595 594 593 592 591 590 589 588 587 586 585 584 583 582 581 580 579 578 577 604 603 602 601 600 599 598 597 596 595 594 593 592 591 590 589 588 587 586 585 584 583 582 581 580 579 578 577 576 603 602 601 600 599 598 597 596 595 594 593 592 591 590 589 588 587 586 585 584 583 582 581 580 579 578 577 576 575 602 601 600 599 598 597 596 595 594 593 592 591 590 589 588 587 586 585 584 583 582 581 580 579 578 577 576 575 574 601 600 599 598 597 596 595 594 593 592 591 590 589 588 587 586 585 584 583 582 581 580 579 578 577 576 575 574 573 600 599 598 597 596 595 594 593 592 591 590 589 588 587 586 585 584 583 582 581 580 579 578 577 576 575 574 573 572 599 598 597 596 595 594 593 592 591 590 589 588 587 586 585 584 583 582 581 580 579 578 577 576 575 574 573 572 571 598 597 596 595 594 593 592 591 590 589 588 587 586 585 584 583 582 581 580 579 578 577 576 575 574 573 572 571 570 597 596 595 594 593 592 591 590 589 588 587 586 585 584 583 582 581 580 579 578 577 576 575 574 573 572 571 570 569 596 595 594 593 592 591 590 589 588 587 586 585 584 583 582 581 580 579 578 577 576 575 574 573 572 571 570 569 568 595 594 593 592 591 590 589 588 587 586 585 584 583 582 581 580 579 578 577 576 575 574 573 572 571 570 569 568 567 594 593 592 591 590 589 588 587 586 585 584 583 582 581 580 579 578 577 576 575 574 573 572 571 570 569 568 567 566 593 592 591 590 589 588 587 586 585 584 583 582 581 580 579 578 577 576 575 574 573 572 571 570 569 568 567 566 565 592 591 590 589 588 587 586 585 584 583 582 581 580 579 578 577 576 575 574 573 572 571 570 569 568 567 566 565 564 591 590 589 588 587 586 585 584 583 582 581 580 579 578 577 576 575 574 573 572 571 570 569 568 567 566 565 564 563 590 589 588 587 586 585 584 583 582 581 580 579 578 577 576 575 574 573 572 571 570 569 568 567 566 565 564 563 562 589 588 587 586 585 584 583 582 581 580 579 578 577 576 575 574 573 572 571 570 569 568 567 566 565 564 563 562 561 588 587 586 585 584 583 582 581 580 579 578 577 576 575 574 573 572 571 570 569 568 567 566 565 564 563 562 561 560 587 586 585 584 583 582 581 580 579 578 577 576 575 574 573 572 571 570 569 568 567 566 565 564 563 562 561 560 559 586 585 584 583 582 581 580 579 578 577 576 575 574 573 572 571 570 569 568 567 566 565 564 563 562 561 560 559 558 585 584 583 582 581 580 579 578 577 576 575 574 573 572 571 570 569 568 567 566 565 564 563 562 561 560 559 558 557 584 583 582 581 580 579 578 577 576 575 574 573 572 571 570 569 568 567 566 565 564 563 562 561 560 559 558 557 556 583 582 581 580 579 578 577 576 575 574 573 572 571 570 569 568 567 566 565 564 563 562 561 560 559 558 557 556 555 582 581 580 579 578 577 576 575 574 573 572 571 570 569 568 567 566 565 564 563 562 561 560 559 558 557 556 555 554 581 580 579 578 577 576 575 574 573 572 571 570 569 568 567 566 565 564 563 562 561 560 559 558 557 556 555 554 553 580 579 578 577 576 575 574 573 572 571 570 569 568 567 566 565 564 563 562 561 560 559 558 557 556 555 554 553 552 579 578 577 576 575 574 573 572 571 570 569 568 567 566 565 564 563 562 561 560 559 558 557 556 555 554 553 552 551 578 577 576 575 574 573 572 571 570 569 568 567 566 565 564 563 562 561 560 559 558 557 556 555 554 553 552 551 550 577 576 575 574 573 572 571 570 569 568 567 566 565 564 563 562 561 560 559 558 557 556 555 554 553 552 551 550 549 576 575 574 573 572 571 570 569 568 567 566 565 564 563 562 561 560 559 558 557 556 555 554 553 552 551 550 549 548 575 574 573 572 571 570 569 568 567 566 565 564 563 562 561 560 559 558 557 556 555 554 553 552 551 550 549 548 547 574 573 572 571 570 569 568 567 566 565 564 563 562 561 560 559 558 557 556 555 554 553 552 551 550 549 548 547 546 573 572 571 570 569 568 567 566 565 564 563 562 561 560 559 558 557 556 555 554 553 552 551 550 549 548 547 546 545 572 571 570 569 568 567 566 565 564 563 562 561 560 559 558 557 556 555 554 553 552 551 550 549 548 547 546 545 544 571 570 569 568 567 566 565 564 563 562 561 560 559 558 557 556 555 554 553 552 551 550 549 548 547 546 545 544 543 570 569 568 567 566 565 564 563 562 561 560 559 558 557 556 555 554 553 552 551 550 549 548 547 546 545 544 543 542 569 568 567 566 565 564 563 562 561 560 559 558 557 556 555 554 553 552 551 550 549 548 547 546 545 544 543 542 541 568 567 566 565 564 563 562 561 560 559 558 557 556 555 554 553 552 551 550 549 548 547 546 545 544 543 542 541 540 567 566 565 564 563 562 561 560 559 558 557 556 555 554 553 552 551 550 549 548 547 546 545 544 543 542 541 540 539 566 565 564 563 562 561 560 559 558 557 556 555 554 553 552 551 550 549 548 547 546 545 544 543 542 541 540 539 538 565 564 563 562 561 560 559 558 557 556 555 554 553 552 551 550 549 548 547 546 545 544 543 542 541 540 539 538 537 564 563 562 561 560 559 558 557 556 555 554 553 552 551 550 549 548 547 546 545 544 543 542 541 540 539 538 537 536 563 562 561 560 559 558 557 556 555 554 553 552 551 550 549 548 547 546 545 544 543 542 541 540 539 538 537 536 535 562 561 560 559 558 557 556 555 554 553 552 551 550 549 548 547 546 545 544 543 542 541 540 539 538 537 536 535 534 561 560 559 558 557 556 555 554 553 552 551 550 549 548 547 546 545 544 543 542 541 540 539 538 537 536 535 534 533 560 559 558 557 556 555 554 553 552 551 550 549 548 547 546 545 544 543 542 541 540 539 538 537 536 535 534 533 532 559 558 557 556 555 554 553 552 551 550 549 548 547 546 545 544 543 542 541 540 539 538 537 536 535 534 533 532 531 558 557 556 555 554 553 552 551 550 549 548 547 546 545 544 543 542 541 540 539 538 537 536 535 534 533 532 531 530 557 556 555 554 553 552 551 550 549 548 547 546 545 544 543 542 541 540 539 538 537 536 535 534 533 532 531 530 529 556 555 554 553 552 551 550 549 548 547 546 545 544 543 542 541 540 539 538 537 536 535 534 533 532 531 530 529 528 555 554 553 552 551 550 549 548 547 546 545 544 543 542 541 540 539 538 537 536 535 534 533 532 531 530 529 528 ...

10   Pass
x = magic(10); x = x(:,1:3); assert(isequal(maxdiag(x),[11 18 100 94 17 86 93 87 98 92 99 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(maxdiag(x),[0 -1 0 -1 0 -1 0 -1 0 -2 -4 -6 -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