MATLAB Answers

what is different between fget1 and fread ?

6 views (last 30 days)
path='F:\多光谱材料\2\2.hdr';
>> fnm='2.hdr';
>> I=enviread(path,fnm);
??? Error using ==> fgetl at 44
Invalid file identifier. Use fopen to generate a valid file identifier.
Error in ==> enviread>read_envihdr at 190
line = fgetl(fid);
Error in ==> enviread at 16
info=read_envihdr(hdrfile);

Accepted Answer

Mohammad Abouali
Mohammad Abouali on 2 Mar 2016
Edited: Mohammad Abouali on 2 Mar 2016
I don't think enviread is a function provided by mathworks. It appears it is something that users have provided.
Try multibandread() function of matlab to read ENVI files. I use this function when I am reading ENVI files and it works very well. If you want some instruction on how to use it to read ENVI files, the following is a good resource.
  3 Comments
Mohammad Abouali
Mohammad Abouali on 6 Mar 2016
I am not sure if I understand thequestion

Sign in to comment.

More Answers (1)

Jan
Jan on 2 Mar 2016
Do not overwrite the important Matlab function path with a variable. Although this will not be the reason of the error, it is a bad idea and might cause severe problems during debugging.
The error means, that the file could not be opened. Most likely the file or folder name is not correct.
I do not see a relation between the error message and the title "difference between fget1 and fread". As the docs explain, fgetl reads a complete line from a text file, while fread reads a specified number of elements from a text or binary file in a specified format.
  2 Comments
Jan
Jan on 3 Mar 2016
Do you see, that your command is called "fetg1" with a trailing "one" not an lower-case "L"? The attached code uses "fgetl" with an L. So you error message does not match the code - please do not confuse the readers with such jokes.
The code is instable. The comparison " if varargin{2}=='date' " will fail with an error, if the 2nd input does not have 4 characters. Use this instead:
if strcmp(varargin{2}, 'date')
The eval s are such ugly!
eval(['info.',param,' = ''',value,''';'])
What about:
info.(param) = value;

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!