Handling character array rather than cell

1 visualizzazione (ultimi 30 giorni)
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.

Risposta accettata

Azzi Abdelmalek
Azzi Abdelmalek il 13 Giu 2015
  1 Commento
Yongmin
Yongmin il 13 Giu 2015
Modificato: Yongmin il 13 Giu 2015
Hello Azzi,
Do you mean use data{:} instead of using char() ? I will try to use the command.
Thanks a lot for your answer!!

Accedi per commentare.

Più risposte (1)

Walter Roberson
Walter Roberson il 13 Giu 2015
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.
  1 Commento
Yongmin
Yongmin il 13 Giu 2015
Dear Walter Robserson,
Thanks a lot for your kind explanation. I understand the limitation of textscan function.

Accedi per commentare.

Categorie

Scopri di più su Characters and Strings in Help Center e File Exchange

Prodotti

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by