Cody

# Problem 2091. return row and column indices given 2 values which define a range

Solution 2256410

Submitted on 5 May 2020 by Michael
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
x1=magic(5); x2=3; x3=9; [R1,C1]=RCMatrixIndices(x1,x2,x3); [fr1,fc1]=find(and(x1>=x2,x1<x3)); assert(and(isequal(R1,fr1),isequal(C1,fc1)))

l = 5×5 logical array 0 0 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 idx = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 idx = 3 7 8 12 16 24 r = 3 2 3 2 1 4 c = 1 2 2 3 4 5

2   Pass

3   Pass

4   Pass
x1=magic(5); x2=3; x3=9; [R2,C2]=RCMatrixIndices(x2,x1, x3); [fr1,fc1]=find(and(x1>=x2,x1<x3)); assert(and(isequal(R2,fr1),isequal(C2,fc1)))

l = 5×5 logical array 0 0 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 idx = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 idx = 3 7 8 12 16 24 r = 3 2 3 2 1 4 c = 1 2 2 3 4 5

5   Pass
x1=magic(5); x2=3; x3=9; [R3,C3]=RCMatrixIndices(x1,x3,x2); [fr1,fc1]=find(and(x1>=x2,x1<x3)); assert(and(isequal(R3,fr1),isequal(C3,fc1)))

l = 5×5 logical array 0 0 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 idx = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 idx = 3 7 8 12 16 24 r = 3 2 3 2 1 4 c = 1 2 2 3 4 5

6   Pass
A=... [3 3 3 3;... 8 3 3 3;... 8 8 3 3;... 8 8 8 3]; lowlim=3; uplim=9; [R4,C4]=RCMatrixIndices(A,uplim,lowlim); assert(length(A(4*(C4-1)+R4))==16)

l = 4×4 logical array 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 idx = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 idx = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 r = 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 c = 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4

7   Pass
A=... [3 3 3 3;... 8 3 3 3;... 8 8 3 3;... 8 8 8 3]; lowlim=4; uplim=9; %extract only 8 [R5,C5]=RCMatrixIndices(A,uplim,lowlim); assert(all(A(4*(C5-1)+R5)==8))

l = 4×4 logical array 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 idx = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 idx = 2 3 4 7 8 12 r = 2 3 4 3 4 4 c = 1 1 1 2 2 3

8   Pass
A=... [3 3 3 3;... 8 3 3 3;... 8 8 3 3;... 8 8 8 3]; lowlim=4; uplim=7; [R6,C6]=RCMatrixIndices(A,uplim,lowlim); assert(and(isempty(R6),isempty(C6)))

l = 4×4 logical array 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 idx = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 idx = 0×1 empty double column vector r = 0×1 empty double column vector c = 0×1 empty double column vector

9   Pass
A=... [3 3 3 3;... 8 3 3 3;... 8 8 3 3;... 8 8 8 3]; lowlim=2; uplim=7; [R7,C7]=RCMatrixIndices(A,uplim,lowlim); assert(and(all(A(4*(C7-1)+R7)==3),length(R7==10)))

l = 4×4 logical array 1 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1 idx = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 idx = 1 5 6 9 10 11 13 14 15 16 r = 1 1 2 1 2 3 1 2 3 4 c = 1 2 2 3 3 3 4 4 4 4

10   Pass
A=1; lowlim=1; uplim=1; [R8,C8]=RCMatrixIndices(A,uplim,lowlim); assert(and(isempty(R8),isempty(C8)))

l = logical 0 idx = 1 idx = 1×0 empty double row vector r = 1×0 empty double row vector c = 1×0 empty double row vector

11   Pass
A=1; lowlim=1; uplim=2; [R9,C9]=RCMatrixIndices(A,uplim,lowlim); assert(and(R9==1,C9==1))

l = logical 1 idx = 1 idx = 1 r = 1 c = 1

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!