Borrar filtros
Borrar filtros

Read characters from a txt file

14 visualizaciones (últimos 30 días)
Nazli Demir
Nazli Demir el 16 de Mayo de 2020
Editada: dpb el 17 de Mayo de 2020
Hello everyone. I have a txt file in which the word 'HELLO' is written. I want Matlab to read this from the text and give me a matrix of the ASCII numbers of the letters. I found and executed the following code from a video.
fid = fopen('input1.txt');
matrix = fscanf(fid,'%f %c', [1,inf])
In the 2015 Matlab version, it gives me a matrix with 9 columns. In 2020 trial version I am using it gives the following error:
"Invalid file identifier. Use fopen to generate a valid file identifier." even though I used fopen.
Any help is appreciated.
  5 comentarios
Nazli Demir
Nazli Demir el 17 de Mayo de 2020
Writing '%s' did reduce it the number of outputs to five as I wanted. They're still not the ASCII character of the letters, but maybe I need to do something else for that. Thank you..
dpb
dpb el 17 de Mayo de 2020
Editada: dpb el 17 de Mayo de 2020
double()
after you read the input data.(*)
If you're going to use formatted read, the i/o formatting libraries return the type of the variable expected in the format string--and a text value in a text file is interpreted as character data. The floating point (or decimal, too, for that matter) format string won't recognize anything other than a valid number as a number; that's its purpose and sole mission in life.
You can cheat and read the file as straight binary bytes by using fread, but that is also system-dependent in what created the file as far as encoding may be for unicode, etc., ...
(*) The other idiom you may see is
v=s+0;
where s is the char() string and v the numeric values...MATLAB will silently do the conversion with the arithmetic operation of char() to double().

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Low-Level File I/O en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by