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!