Creating a binary file using fwrite

16 views (last 30 days)
Hello
I'm wondering if anyone can help me. I don't have any experience creating binary files or doing what I need to do so this might be a silly question :)
I have a 3D matrix, 24x10x24 (time X layers X nodes). I'm trying to write a for loop for that it runs through the 10 layers with both time and nodes being 1, then I need it to run through each each layer with time being 1 and nodes being 2, and so on for each node. e.g
% [Double] U(1,1,1)
% [Double] V(1,1,1)
% ...[Double] U(nLayers,1,1)
% [Double] V(nLayers,1,1)
% [Double] U(1,2,1)
% [Double] V(1,2,1)
% ...[Double] U(nLayers,2,1)
% [Double] V(nLayers,2,1)
% ... ... ...[Double] U(nLayers,nNodes,1)
% [Double] V(nLayers,nNodes,1)
% [Double] U(1,1,2)
% [Double] V(1,1,2)
% ...[Double] U(nLayers,1,2)
% [Double] V(nLayers,1,2)
% [Double] U(1,2,2)
% [Double] V(1,2,2)
% ...[Double] U(nLayers,2,2)
% [Double] V(nLayers,2,2)
% ... ... ...[Double] U(nLayers,nNodes,2)
% [Double] V(nLayers,nNodes,2)
I've written some code, but I don't think its right at all since I can't really wrap my head around what I need to do anyway. And I probably haven't explained myself very well. If anyone has any ideas, I would really welcome them :)
Code so far (very wrong):
for lp=1:length(nLayers);
fwrite(fileID,FV.u(1,lp,1),'double','ieee-be');
fwrite(fileID,FV.v(1,lp,1),'double','ieee-be');
for lq=1:length(nNodes);
fwrite(fileID,FV.u(1,lp,lq),'double','ieee-be');
fwrite(fileID,FV.v(1,lp,lq),'double','ieee-be');
for lt=1:length(nTimeStep);
fwrite(fileID,FV.u(lt,lp,lq),'double','ieee-be');
fwrite(fileID,FV.v(lt,lt,lp),'double','ieee-be');
end
end

Accepted Answer

Walter Roberson
Walter Roberson on 25 Oct 2016
Your code writes u(1,lp,1) and then writes it again as the first element of u(1,lp,lq)
  4 Comments
Walter Roberson
Walter Roberson on 25 Oct 2016
If you are using Linux or OS X then you can use "od" to examine the contents of the binary file
Meghan
Meghan on 25 Oct 2016
Sorry I realised that I'd already written the code and got the answer I wanted. I just had it a bit fuzzy. Never written anything to binary before so a little all over the place!
Thanks for the help anyway :)

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!