Find and Replace (MATLAB)
조회 수: 38 (최근 30일)
이전 댓글 표시
I am trying to find and replace text string before a comma and keep the data string after the comma. I have tried the wildcard '*' but it didn't work. I have 55 states to do this to. An example is 'Adak Island, AK' to just "AK".
repeats = ' , AK'
indices = strfind(repeats, 'AK')
indices = 4
using_replace = replace(repeats, ' , AK', 'AK')
nothing changed, the text string stayed the same. Any suggestions?
댓글 수: 0
채택된 답변
Sean de Wolski
2022년 6월 7일
strip(extractAfter('Adak Island, AK',","))
And see the other fun methods of string to figure out how to manipulate the part you want
methods('string')
댓글 수: 3
Sean de Wolski
2022년 6월 7일
This will stick it back in as a new variable in the table called State
T = readtable('County_STATE.csv');
T.State = extractAfter(T.DISPLAY_AIRPORT_CITY_NAME_FULL,", ");
추가 답변 (4개)
Image Analyst
2022년 6월 10일
편집: Image Analyst
2022년 6월 10일
Try this:
t = readtable('County_STATE.csv');
% Crop off null columns
t = t(:, 1:3);
% Extract State alone, and City alone.
State = extractAfter(t.DISPLAY_AIRPORT_CITY_NAME_FULL, ', ');
City = extractBefore(t.DISPLAY_AIRPORT_CITY_NAME_FULL, ', ');
% Add these on as columns in the table variable.
t = addvars(t, City, State, 'After','DISPLAY_AIRPORT_CITY_NAME_FULL')
댓글 수: 0
Image Analyst
2022년 6월 7일
Why not just do this:
str = 'Adak Island, AK' ;
commaIndex = strfind(str, ',')
if ~isempty(commaIndex)
output = strtrim(str(commaIndex+1 : end))
else
output = str % No comma in the string so just return the original.
end
댓글 수: 4
Image Analyst
2022년 6월 7일
You gave us a character array. Please give us the data in the form of a table in a mat file with the paperclip icon so we can show you how to apply it to a table. Did you try just going down the column row by row?
Steven Lord
2022년 6월 7일
Functions like extract, extractAfter, etc. don't modify the variables that you pass in as input. If you were to specify those same variable names as the output argument for those calls then they would be modified.
fruit = "Apple, Banana, Cherry"
The following call creates a new variable named justCherry and leaves the fruit variable with its original contents.
justCherry = extractAfter(fruit, "Banana, ")
fruit
The following call overwrites the existing variable named fruit with the output of extractAfter, so fruit is different after the call.
fruit = extractAfter(fruit, "Banana, ")
fruit
Your original code using_replace = replace(repeats, ' , AK', 'AK') does not modify the repeats variable.
If you'd written repeats = replace(repeats, ' , AK', 'AK') that would overwrite the original contents of the repeats variable with the modified data returned by replace.
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Characters and Strings에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!