Read characters from a txt file
10 次查看(过去 30 天)
显示 更早的评论
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 个评论
dpb
2020-5-17
编辑:dpb
2020-5-17
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().
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Low-Level File I/O 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!