Problem 105. How to find the position of an element in a vector without using the find function
Write a function posX=findPosition(x,y) where x is a vector and y is the number that you are searching for.
Examples:
findPosition([1 3 5 4 2], 2) posX is 5
findPosition([1 5 8 6 7 6 0], 8) posX is 3
Solution Stats
Problem Comments
-
8 Comments
May you please add this (or something similar) to the test suite:
% Test for find usage
fid = fopen(which('test'), 'r');
c = onCleanup(@()fclose(fid));
tline = fgetl(fid);
while ischar(tline),
if strfind(tline,'find'),
error('Don''t use find');
end
tline = fgetl(fid);
end
This should work fine after you've renamed your function.
there should be more test suite. such as x =[1 2 3;4 5 6;7 8 9];y =5;then the output is [2,2]; x = [1 2 2 3]; y =2;then the output is [2;2];
The test suite needs to be very restrictive here, the amount of trivial solutions is alarming. Yan
Solution Comments
Show commentsProblem Recent Solvers2742
Suggested Problems
-
2448 Solvers
-
Vectorize the digits of an Integer
324 Solvers
-
Set the array elements whose value is 13 to 0
1373 Solvers
-
853 Solvers
-
Check that number is whole number
4510 Solvers
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!