Convert char to table
47 次查看(过去 30 天)
显示 更早的评论
Hi,
I have a series of coordinates as char type (disp output):
[446 154;445 155;444 156;443 156;442 156]
How can I convert them to table so can be save like this using writetable:
446 154
445 155
444 156
443 156
442 156
Thanks
1 个评论
Stephen23
2023-11-2
"I have a series of coordinates as char type (disp output)"
Best solution: avoid the indirection of printing numeric data to text and then converting from text back into numeric.
采纳的回答
Walter Roberson
2023-11-2
编辑:Walter Roberson
2023-11-2
str2num preferably with restricted
coordinates = '[446 154;445 155;444 156;443 156;442 156]';
C = str2num(coordinates, 'Evaluation', 'restricted')
T = array2table(C, 'VariableNames', {'X', 'Y'})
0 个评论
更多回答(2 个)
Stephen23
2023-11-2
If you already have a character vector and the goal is to print it to file, then avoid the indirection of converting to numeric just so that you can use WRITEMATRIX:
txt = '[446 154;445 155;444 156;443 156;442 156]';
spl = split(replace(txt,["]","["],""),";");
writelines(spl,'test.txt')
Check the file content:
type test.txt
0 个评论
Voss
2023-11-2
If you have a char vector like this,
coordinates = '[446 154;445 155;444 156;443 156;442 156]';
disp(coordinates)
then one way to get the numbers out is
C = split(coordinates,';');
C = regexp(C,'[\d+-Ee.]+','match');
C = vertcat(C{:})
Then you can do whatever conversion you need. For instance, converting to a matrix makes sense to me:
M = str2double(C)
in which case you would use writematrix to write it to a file:
filename = 'matrix.csv';
writematrix(M,filename)
% show the file's contents:
type(filename)
Of course, you can also convert to a table and use writetable, if you prefer:
T = array2table(M) % a table of numbers
filename = 'table_of_numbers.csv';
writetable(T,filename)
% show the file's contents:
type(filename)
T = cell2table(C) % a table of char vectors
filename = 'table_of_chars.csv';
writetable(T,filename)
% show the file's contents:
type(filename)
0 个评论
另请参阅
类别
在 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!