Poker hand ranker

Function that evaluates poker hands, returns ranks and text descriptions.

You are now following this Submission

A function that evaluates poker hands and returns a numerical rank and text description for each. The list of cards used to make the best possible hand is returned in 'usedcards'. If handsize is smaller than the length of hands given, then the cards not used in the best possible hand are returned in 'unusedcards'. Rank of 1 is best (Royal Flush), higher numbers are worse. Rank values are not contiguous across all hands, but are correctly ordered.

The hand matrix expected is an mxn list of m hands with n cards. The cards are numbered from 1 to 52. Suit doesn't matter for ranking. Order of the cards in the input vector does not matter. Numbering starts with the Ace at position 1. Here is a suggested card assignment:

A | K | Q | J | 10| 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Suit
-------------------------------------------------------------
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10| 11| 12| 13| Spades
14| 15| 16| 17| 18| 19| 20| 21| 22| 23| 24| 25| 26| Hearts
27| 28| 29| 30| 31| 32| 33| 34| 35| 36| 37| 38| 39| Clubs
40| 41| 42| 43| 44| 45| 46| 47| 48| 49| 50| 51| 52| Diamonds

Example call to the function:
trick = [33,3,43,1,25,4,19;
6,36,20,10,35,21,38;
45,31,51,40,37,22,26;
28,49,46,32,17,16,39];
[ranks,descriptions,usedcards,unusedcards] = rankp(trick,2);

Cite As

Rob Slazas (2026). Poker hand ranker (https://www.mathworks.com/matlabcentral/fileexchange/17579-poker-hand-ranker), MATLAB Central File Exchange. Retrieved .

Categories

Find more on Card games in Help Center and MATLAB Answers

General Information

MATLAB Release Compatibility

  • Compatible with any release

Platform Compatibility

  • Windows
  • macOS
  • Linux
Version Published Release Notes Action
1.0.0.0

revision 5 - fixed a conditional error in the numerical ranking section, thanks to Tim C. for testing it.