Пусть у меня есть последовательность:Как рассчитать возможные подпоследовательности слов, соответствующие шаблону?
Seq = 'hello my name'
и строка:
Str = 'hello hello my friend, my awesome name is John, oh my god!'
А потом я смотрю на матчи для моей последовательности в строке, так что я получаю «слово» индекс каждого матча для каждого слова последовательности в массиве ячеек, поэтому первым элементом является ячейка, содержащая совпадения для «hello», второй элемент содержит совпадения для «my», а третий для «name».
Match = {[1 2]; %'hello' matches
[3 5 11]; %'my' matches
[7]} %'name' matches
мне нужен код, чтобы каким-то образом получить ответ о том, что возможные совпадения суб-последовательности являются:
Answer = [1 3 7; %[hello my name]
1 5 7; %[hello my name]
2 3 7; %[hello my name]
2 5 7;] %[hello my name]
В таким образом, что «ответ» содержит все возможные упорядоченные последовательности (именно поэтому мое (слово 11) никогда не появляется в «Ответ», должно было бы быть «название» матч после позиции 11.
. Примечание: длина и количество матчей «Seq» может варьировать в
Большое спасибо, он отлично работает! Я не знал функций ndgrid и cellfun, все равно должен понять, как это работает, потому что эти два шага мне не понятны, но я сам это сделаю. Спасибо, сэр! – ACenTe25
@ ACenTe25 Не стесняйтесь спрашивать, нужно ли вам после изучения :-) –
Думаю, я сейчас понимаю. Я мог бы получить аналогичный результат, даже если бы я написал '[cc {1: end}] = ndgrid (Match {1: end});' right? Единственным изменением будет порядок, в котором комбинации будут доставлены в «гребнях», если я правильно пойму. – ACenTe25