Writing 3D data into text files

I want to write my 3D data in separate text files, my data matrix has dimensions = 8x256x32. I want to write 8 separate files, all having 256x32 data values. how can I do this? Kindly help me with the following code:
[a,b,c]=size(sig);
for x = 1:8
filename = ['signal' num2str(x) '.txt'];
for y = 1:256
for z = 1:32
dlmwrite(filename,sig(x,:,:),'delimiter','\t')
end
end
fclose(filename);
end
thank you.

5 commentaires

KSSV
KSSV le 18 Oct 2017
When you write this matrix 256X32, data will be disturbed from 8X256 matrix.....is it okay?
Stephen23
Stephen23 le 18 Oct 2017
Modifié(e) : Stephen23 le 18 Oct 2017
You provide a 3D array to dlmwrite, with size 1x256x32. You need to provide a matrix.
Nabigha Nazneen
Nabigha Nazneen le 18 Oct 2017
@KSSV, I want to write 8 separate files of 256x32 data matrix. @Stephen Cobeldick, how can I pass a matrix when I have 3D data, do I need to squeeze the data first and later write the file?
KSSV
KSSV le 18 Oct 2017
I suggest you to write whole data 8x256x32 into single file......there are formats which support this.
Nabigha Nazneen
Nabigha Nazneen le 18 Oct 2017
I need these file to be ported to visual C, I need them as this. I don't need single file. thanks for assistance

Connectez-vous pour commenter.

Réponses (1)

Jan
Jan le 18 Oct 2017
Modifié(e) : Jan le 18 Oct 2017

0 votes

You are talking about 65536 numbers. Text files are useful, if they are read or edited by a human, but nobody will read and understand such a pile of values.
Therefore it would be easier, faster and cleaner to store the values in a binary format using fwrite. This will allow for an easier method to import the data later on also.

Community Treasure Hunt

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

Start Hunting!

Translated by