Replace string values in a table
이전 댓글 표시
I have a column in a table with 3 wine types defined as character values "1", "2" and "3". I want to replace these values with "French", "Spanish" and "Italian" respectively. I am treating the column as an array of strings and using the tried and trusted combination of a for loop and if/elseif ladder to select and replace each of the string values in the table. Howver, when I run this in the command window, I get an error saying 'Unable to perform assignment because the left and right sides have a different number of elements' . My code is listed below and the array I am trying run it on is attached.
for i = 1:size(Typ)
if((Typ(i))=="1")
Typ(i)="French"
elseif((Typ(i))=="2")
Typ(i)="Spanish"
elseif((Typ(i))=="3")
Typ(i)="Italian"
else
end
end
채택된 답변
추가 답변 (2개)
The simple MATLAB approach would be to use indexing:
T = readtable('Typ.csv');
V = ["French";"Spanish";"Italian"];
T.Typ = V(T.V1)
This is what categorical is built for! When you create the categorical, you can specify the data, value set, and category names.
T = readtable("https://www.mathworks.com/matlabcentral/answers/uploaded_files/929319/Typ.csv");
T.Typ = categorical(T.V1, 1:3, ["French", "Spanish","Italian"])
카테고리
도움말 센터 및 File Exchange에서 String Parsing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!