Read characters from a txt file
10 views (last 30 days)
Show older comments
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 Comments
dpb
on 17 May 2020
Edited: dpb
on 17 May 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().
Answers (0)
See Also
Categories
Find more on Low-Level File I/O in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!