Handling character array rather than cell
2 次查看(过去 30 天)
显示 更早的评论
Hello,
I have a text file (file name: X) having identifiers with 64 byte characters. I used textscan function to read the identifiers in MATLAB as follows:
fid = fopen('X','r');
data = textscan(fid,'%64c','delimiter',',');
As a results, I have a cell of records having 64 byte identifiers. My question is how to have a character array instead of a cell?
I can use function char() to change a cell into a character array:
data = char(data);
But I want to generate a character array when I read the text file using textscan because char() function requires another long time to execute.
Thank you for your attention.
0 个评论
采纳的回答
更多回答(1 个)
Walter Roberson
2015-6-13
fid = fopen('X','r');
data = textscan(fid,'%64c','delimiter',',');
data = data{1}; %extracts array of char from cell array
When you use %c format in textscan the corresponding output is an array of character; and as usual, the outputs are all encapsulated in a cell array.
This differs from using %s format in textscan, in which case the corresponding output is a cell array of strings, which is something you might want to apply char() to in order to create a character array.
There is no way to get textscan to return values not encapsulated in a cell array. There is, however, no conversion time to use data{1} to get at the character array.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Text Data Preparation 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!