Effacer les filtres
Effacer les filtres

Split digits into 2 matrices

1 vue (au cours des 30 derniers jours)
loes henstra
loes henstra le 2 Juin 2021
I am trying to solve a card problem.
I get two hands as an imput (Let's say 5H 5C 6S 7S 10D and 2C 3S 6S 7S 10D)
For this I want to split suit and number and put them in 2 different matrices. (I ofcourse number the suits first).
I have found ways to split the digits of a number, but not to put them in 2 different matrices.

Réponses (1)

Walter Roberson
Walter Roberson le 2 Juin 2021
Modifié(e) : Walter Roberson le 2 Juin 2021
Different approaches:
cards = {'5H' '5C' '6S' '7S' '10D' 'QC' '3S' 'KS' '7S' '10D'}
cards = 1×10 cell array
{'5H'} {'5C'} {'6S'} {'7S'} {'10D'} {'QC'} {'3S'} {'KS'} {'7S'} {'10D'}
ranks1 = cellfun(@(c) c(1:end-1), cards, 'uniform', 0)
ranks1 = 1×10 cell array
{'5'} {'5'} {'6'} {'7'} {'10'} {'Q'} {'3'} {'K'} {'7'} {'10'}
suits1 = cellfun(@(c) c(end), cards, 'uniform', 0)
suits1 = 1×10 cell array
{'H'} {'C'} {'S'} {'S'} {'D'} {'C'} {'S'} {'S'} {'S'} {'D'}
ranks2 = regexprep(cards, '.$', '', 'once')
ranks2 = 1×10 cell array
{'5'} {'5'} {'6'} {'7'} {'10'} {'Q'} {'3'} {'K'} {'7'} {'10'}
suits2 = regexp(cards, '.$', 'match', 'once')
suits2 = 1×10 cell array
{'H'} {'C'} {'S'} {'S'} {'D'} {'C'} {'S'} {'S'} {'S'} {'D'}
ranks3 = extractBefore(cards, lettersPattern(1) + lineBoundary)
ranks3 = 1×10 cell array
{'5'} {'5'} {'6'} {'7'} {'10'} {'Q'} {'3'} {'K'} {'7'} {'10'}
suits3 = extract(cards, lettersPattern(1) + lineBoundary)
suits3 = 1×10 cell array
{'H'} {'C'} {'S'} {'S'} {'D'} {'C'} {'S'} {'S'} {'S'} {'D'}
ranks4 = extract(cards, asManyOfPattern(characterListPattern("A1234567890JQK"),1))
ranks4 = 1×10 cell array
{'5'} {'5'} {'6'} {'7'} {'10'} {'Q'} {'3'} {'K'} {'7'} {'10'}
suits4 = extract(cards, characterListPattern("CDHS"))
suits4 = 1×10 cell array
{'H'} {'C'} {'S'} {'S'} {'D'} {'C'} {'S'} {'S'} {'S'} {'D'}
ranks5 = regexp(cards, '[0-9AJQK]+', 'match', 'once')
ranks5 = 1×10 cell array
{'5'} {'5'} {'6'} {'7'} {'10'} {'Q'} {'3'} {'K'} {'7'} {'10'}
suits5 = regexp(cards, '[CDHS]', 'match', 'once')
suits5 = 1×10 cell array
{'H'} {'C'} {'S'} {'S'} {'D'} {'C'} {'S'} {'S'} {'S'} {'D'}

Catégories

En savoir plus sur Tables dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by