How do you find the longest consecutive values of a number in an array?
13 views (last 30 days)
Show older comments
you can only use the functions: length, size, max, min, mod, all, any, sort, find, floor, ceil, round, log10, sum, zeros, ones, reshape, repmat
3 Comments
Image Analyst
on 29 Nov 2015
Since it's homework we can't just give the you complete answer outright. Since you haven't given any code for us to fix, I'm not sure what hints to even give other than to use those functions and operators you were told you were allowed to use. I'm going to assume the numbers are integers and I'm going to assume you can use indexing like vec(2:end), so I'd look closely at the subtraction operator.
Answers (2)
Walter Roberson
on 29 Nov 2015
That cannot be done. In order to find consecutive values you would need to index into the array, but indexing is a function in MATLAB and it is not on your permitted list.
2 Comments
Jan
on 29 Nov 2015
Even the assignment of variables will suffer from the excluded subsasgn. And without any function for an output there is no chance to show the result.
Guillaume
on 29 Nov 2015
The simplest way to do what you want is with:
max(diff(find(diff([NaN v NaN])))) %where v is the input vector
It is trivial to replace diff by some simple indexing. The function NaN can be replaced by any number known not to occur in the vector. NaN is the safest value to use though.
0 Comments
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!