can anybody help in understanding fopen and fread?

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.

 採用された回答

Image Analyst
Image Analyst 2014 年 6 月 20 日

1 投票

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 件のコメント

subha
subha 2014 年 6 月 20 日
what about count ? is that represents no of columns?
Image Analyst
Image Analyst 2014 年 6 月 20 日
編集済み: Image Analyst 2014 年 6 月 20 日
It's the number of values read, which is 4 because that's how many you told it to read. You can pass in an array, such as [2,2] instead of 4 if you want the results in a 2 by 2 matrix. It could be less than 4 if, for example, you were only 1, 2, or 3 numbers from the end of the file so that is all it could possibly return.
subha
subha 2014 年 6 月 26 日
編集済み: subha 2014 年 6 月 26 日
I am reading an image file. what a value represents? Is it intensity of pixel?
Image Analyst
Image Analyst 2014 年 6 月 26 日
Yes, usually. Sometimes though a pixel can represent a distance or height or something else other than reflectance or brightness.
subha
subha 2014 年 6 月 26 日
How can i understand, in my case what it represents
Image Analyst
Image Analyst 2014 年 6 月 26 日
You have to know about how and why your image was taken. Was it a fluorescence micrograph where color indicated what marker tagged what material? Was it a profilometer image where the value is the height of your sample above the table top? Was it just some vacation snapshot where the pixel is just the color of some location in your scene? Surely, you MUST know something about your images. Otherwise why are you even doing anything with them?
subha
subha 2014 年 6 月 29 日
編集済み: subha 2014 年 6 月 30 日
My image file consists of handwritten digits. It is grey scale image. In my image file, it is mentioned, pixels values are in 0-255. 0 represent background(white), 255 represent foreground(black). So it means, i can say my values represents color of scene. since, it is a grey level image. it is representing intensity of an image. Is that sensible?
Image Analyst
Image Analyst 2014 年 6 月 29 日
Why is it not in some standard image file format??? If it is in a standard format for images, you can use imread() rather than build your own file reader with fread(). I mean, why make it hard on yourself?
subha
subha 2014 年 6 月 30 日
編集済み: subha 2014 年 6 月 30 日
The image is taken from this website. http://yann.lecun.com/exdb/mnist/. i was not able to predict image format. They are not in standard image format. if u know any idea suggest me.
Image Analyst
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
subha
subha 2014 年 6 月 30 日
Thanks a lot. it really helps me..

サインインしてコメントする。

その他の回答 (1 件)

Marta Salas
Marta Salas 2014 年 6 月 20 日

0 投票

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

カテゴリ

ヘルプ センター および File ExchangeData Import and Analysis についてさらに検索

タグ

質問済み:

2014 年 6 月 20 日

コメント済み:

2014 年 6 月 30 日

Community Treasure Hunt

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

Start Hunting!

Translated by