Cody

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

Solution 2737687

Submitted on 24 Jul 2020
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)))

2   Pass
filetext = fileread('RCMatrixIndices.m'); assert(isempty(strfind(filetext, 'find')))

3   Pass
filetext = fileread('RCMatrixIndices.m'); assert(isempty(strfind(filetext, 'regexp')))

4   Fail
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)))

The logical indices contain a true value outside of the array bounds. Error in RCMatrixIndices (line 3) B = idx((A-x1) >= 0 & (A-x2) < 0); Error in Test4 (line 4) [R2,C2]=RCMatrixIndices(x2,x1, x3);

5   Fail
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)))

Assertion failed.

6   Fail
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)

Assertion failed.

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))

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)))

9   Fail
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)))

Assertion failed.

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

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

Error using assert The condition input argument must be a scalar logical. Error in Test11 (line 5) assert(and(R9==1,C9==1))

Suggested Problems

More from this Author10

Community Treasure Hunt

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

Start Hunting!