Replace string values in a table
조회 수: 46 (최근 30일)
이전 댓글 표시
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
댓글 수: 0
채택된 답변
Mathieu NOE
2022년 3월 16일
hello
my 2 cents suggestion
Typ = readtable('Typ.csv');
Typ = table2array(Typ);
for i = 1:numel(Typ)
if((Typ(i))== 1)
newTyp{i,1}='French';
elseif((Typ(i))==2)
newTyp{i,1}='Spanish';
elseif((Typ(i))==3)
newTyp{i,1}='Italian';
else
end
end
Typ = newTyp;
댓글 수: 0
추가 답변 (2개)
Eric Sofen
2022년 3월 17일
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"])
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrices and Arrays에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!