Convert a numerical variable in a table to string
166 ビュー (過去 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 で Characters and Strings についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!