Cody

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

Solution 1938197

Submitted on 16 Sep 2019 by goc3
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)))

in = 0 0 3 0 0 0 7 8 0 0 0 12 0 0 0 16 0 0 0 0 0 0 0 24 0 rowidx = 3 2 3 2 1 4 colidx = 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)))

in = 0 0 3 0 0 0 7 8 0 0 0 12 0 0 0 16 0 0 0 0 0 0 0 24 0 rowidx = 3 2 3 2 1 4 colidx = 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)))

in = 0 0 3 0 0 0 7 8 0 0 0 12 0 0 0 16 0 0 0 0 0 0 0 24 0 rowidx = 3 2 3 2 1 4 colidx = 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)

in = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 rowidx = 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 colidx = 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))

in = 0 2 3 4 0 0 7 8 0 0 0 12 0 0 0 0 rowidx = 2 3 4 3 4 4 colidx = 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)))

in = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 rowidx = 0×1 empty double column vector colidx = 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)))

in = 1 0 0 0 5 6 0 0 9 10 11 0 13 14 15 16 rowidx = 1 1 2 1 2 3 1 2 3 4 colidx = 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)))

in = 0 rowidx = 0×1 empty double column vector colidx = 0×1 empty double column vector

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

in = 1 rowidx = 1 colidx = 1

### Community Treasure Hunt

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

Start Hunting!