Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

fread order of operations

Asked by Jim Hokanson on 18 Mar 2011

Does Matlab enforce some sort of order of executions for fread statements?

For example, if we did: fread(fid,1,'int8')*3 + fread(fid,1,'uint8')*4

Would the 'int8' read always execute before the 'uint8'?

I would have no reason to expect this, and it seems like either this should be the case, or this should show an mlint warning.

0 Comments

Jim Hokanson

Products

No products are associated with this question.

1 Answer

Answer by Jan Simon on 18 Mar 2011
Accepted answer

In the documentation I find:

Operator precedence ... Within each precedence level, operators have equal precedence and are evaluated from left to right.

This means, that the left FREAD is performed at first ever.

2 Comments

Walter Roberson on 18 Mar 2011

Though I wonder if this is strictly followed with JIT ?

Jan Simon on 19 Mar 2011

The execution order is a very fundamental and documented behaviour. Of course it is possible, that the JIT has such a serious bug. But I do not find a corresponding bug report.

What about: a(fread(fid, 1, 'uint8')) = fread(fid, 1, 'uint16')
The UINT16 is read at first, but I can anyone find a corresponding statement in the documentation.

Jan Simon

Contact us