Convert a numerical variable in a table to string
조회 수: 203 (최근 30일)
이전 댓글 표시
I have a table T with 5 variables/columns
The 3rd variable (pic), with 75 rows, is basically pic = [70, 40, 60, 70, 50, 65...] How can I convert this one variable in the able to a string? I need to do that so I can carry out strrep later on.
T = string (T(:,3)) is not working. Any ideas where I am going wrong?
Thanks heaps!
댓글 수: 3
Guillaume
2018년 5월 3일
편집: Guillaume
2018년 5월 4일
It seems odd to want to replace numerical value with text. Nonetheless, all this replacement can be done a lot more easily and certainly a lot faster without having to convert any of the numbers to text beforehand.
To show you how to do that, you need to be a bit clearer on what is replaced by what. Give an example using valid matlab syntax.
edit: see Walter's answer for what I mean, using a lookup table will be a lot faster than converting numbers to strings
채택된 답변
Walter Roberson
2018년 5월 3일
zlookup = {'z1', 'z2', 'z3'};
T3 = T{:,3};
[tf, idx] = ismember(T3, [60, 40, 30]);
out = cell(length(tf),1);
out(tf) = zlookup(idx(tf));
out(~tf) = sprintfc('%g', T3(~tf));
T{:,3} = out;
댓글 수: 0
추가 답변 (2개)
CARLOS RIASCOS
2018년 5월 3일
Starting from the fact that you have the variable 'pic = [70, 40, 60, 70, 50, 65 ...]' defined you could convert that row vector like this:
g = num2str(pic)
The variable g will contain the string produced by pic.
댓글 수: 1
Walter Roberson
2018년 5월 3일
Be sure to pass in a column vector.
The result will be a char array. To convert to string objects, cellstr() and string() the results.
참고 항목
카테고리
Help Center 및 File Exchange에서 Data Type Conversion에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!