필터 지우기
필터 지우기

Convert multiple strings in a table to numbers

조회 수: 101 (최근 30일)
YaaW
YaaW 2023년 1월 12일
댓글: YaaW 2023년 1월 12일
I'm trying to convert multiple strings in a table to numbers, but I keep on getting an error (either 'NaN' as an answer, or "Right hand side of an assignment into a table must be another table or a cell array").
It's a table where columns 13:68 contain either a "number" or "" (empty cell), and I want the string numbers to be converted to a number, and the empty cells to a NaN.
It works if I try this for one column only, using:
Table.X = str2double(Table.X);
But I have to do this for 56 columns and there must be a way to do it quicker than for each of them separately, however trying:
Table.(: ,X:YY) = str2double(Table.(: ,X:YY));
doesn't seem to work, as it returns an error, and changing the () to {} returns a NaN.
Anybody that knows how I can easily change string to double for multiple columns in a table?

채택된 답변

Stephen23
Stephen23 2023년 1월 12일
T = cell2table({"cat","1.2","","3.4";"in","4.5","6","7";"hat","","89",""})
T = 3×4 table
Var1 Var2 Var3 Var4 _____ _____ ____ _____ "cat" "1.2" "" "3.4" "in" "4.5" "6" "7" "hat" "" "89" ""
T = convertvars(T,2:4,'double')
T = 3×4 table
Var1 Var2 Var3 Var4 _____ ____ ____ ____ "cat" 1.2 NaN 3.4 "in" 4.5 6 7 "hat" NaN 89 NaN

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Tables에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by