Find exact pattern in string
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Jasmien Sihota
il 18 Feb 2021
Risposto: Walter Roberson
il 18 Feb 2021
I am trying to find the exact pattern in my array including the number of characters.
clear all; close all;
code = ...
[".----";"..---";"...--";"....-";".....";"-....";"--...";"---..";"----.";...
"-----";".-";"-...";"-.-.";"-..";".";"..-.";"--.";"....";"..";".---";...
"-.-";".-..";"--";"-.";"---";".--.";"--.-";".-.";"...";"-";...
"..-";"...-";".--";"-..-";"-.--";"--..";"..--.-"];
letter = ...
["1";"2";"3";"4";"5";"6";"7";"8";"9";"0";"A";"B";"C";"D";"E";"F";"G";"H";...
"I";"J";"K";"L";"M";"N";"O";"P";"Q";"R";"S";"T";"U";"V";"W";"X";"Y";"Z";"-"];
userInput = input("Enter your morse code ", 's');
numcharacters = count(userInput, "/")
for i = 1:length(numcharacters)
if ismember (userInput(i), code)
k = strmatch(code,userInput(i), 'exact')
message = letter(k)
else
disp('error')
end
end
This version of the code outputs an empty array for k
When I change it to
k = matches(code,userInput(i))
it only matches to "T" or "E". I need to match the whole pattern for my code.
0 Commenti
Risposta accettata
Walter Roberson
il 18 Feb 2021
Your code is expecting userInput(i) to be an entire group of pulses. But it is not. userInput is a character vector and (i) is indexing individual characters.
You have three choices:
1. remove the 's' option from input() and require that the user enter in the form
["..-","-"]
with your program crashing if they make a mistake; or
1b) same but put in a try/catch to handle the inevitable errors more smoothly; or
2. Leave in the 's' but expect the user to use the above form but scan the character vector to ensure that it has the right format, and use eval() on the validated character vector;
3. Leave in the 's' and continue to expect the user to use / to mark the end of blocks, and split the character vector into pieces at each / and string() the cell array of character vectors you got from the splitting to create the string array that you can use (i) indexing with.
0 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su String in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!