can anybody help in understanding fopen and fread?
조회 수: 9 (최근 30일)
이전 댓글 표시
As per my understanding, fopen open the file in a mode which we want. For example, if we say r,then it opens in read mode. fread, read the open file and returns the no of elements.
Based on above line, i tried below code.
f= fopen('train-images-idx3-ubyte', 'r')
Ans:
f =
56
Here what 56 represents? I understand it is file identifier. How it is generated?
[a, count]= fread(f,4,'int 32')
a =
1.0e+09 *
0.0509
1.6259
0.4698
0.4698
count =
4
Could anybody help me to understand the above result.
댓글 수: 0
채택된 답변
Image Analyst
2014년 6월 20일
f is some identification number of the file. Don't worry about what it's actual value is or how it's generated - it doesn't matter (as long as it's not -1 which indicates an error). It's simply used to tell fread() or fprintf() what file to talk to.
The fread line read four 4-byte integers from the binary file. You store them into variable "a". It should be 'int32' rather than 'int 32' though.
댓글 수: 11
Image Analyst
2014년 6월 30일
Did you try Google? Lots of readers for it there: https://www.google.com/?gws_rd=ssl#newwindow=1&q=mnist+matlab+code&safe=off
추가 답변 (1개)
Marta Salas
2014년 6월 20일
The file identifier is a integer greater than 3. Identifier -1 means fopen can not open the file, and MATLAB reserves file identifiers 0, 1, and 2 for standard input, standard output (the screen), and standard error, respectively.
[a, count]= fread(f,4,'int 32')
This line is reading 4 values in the file f such that the source data is class uint32. Then the 4 values are stored in a and the number of values read from the file is stored in count
댓글 수: 0
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!