No products are associated with this question.
In order to do it in MATLAB you would have to open the video file as a binary file, and decode the binary file format.
In MATLAB, once you have read in a video file using aviread() or VideoReader or the like, the information about which frames were I frames is not retrievable from the decoded stream. There is no fixed rule for which frames must be I frames (other than the first and last frame): any other kinds of frames are only optimizations to reduce bandwidth requirements.
You might be able to find C or C++ source code for reading these kinds of files, and you could then adapt that source to tell you which frames were of which variety. I do not recall having seen any MATLAB source code for reading these kinds of files, but it is not something I have looked for.
If you have a moment, I would appreciate a brief explanation of why you want the I frames? We have had this question before (about extracting the I frames), but people have not explained what they intend to do with the information; about the only answer we've had has been the impression that "I dunno: it is a course assignment."