save a three dimensional matrix
13 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Fariba
am 16 Aug. 2012
Bearbeitet: Walter Roberson
am 4 Sep. 2020
How can i save a three dimensional matrix. The following does not work
for b=1:size(GP,3);
Q(:,:,b)=wtpt*GP(:,:,b);
save('G:\.........\Q.txt','Q','-ASCII','-double');
end
Thanks
0 Kommentare
Akzeptierte Antwort
Titus Edelhofer
am 16 Aug. 2012
Hi,
you have two options: one would be to save the individual slices
for b=1:size(GP, 3)
Q(:,:, b) = wtpt*GP(:,:,b);
A = Q(:,:,b);
save(sprintf('G:\Q_%d.txt', b), 'A', '-ASCII', '-double');
end
The alternative would be to use reshape to make it a 2D matrix, and when you load it, reshape it back to a 3D matrix. It depends what you need the ascii output for.
Titus
4 Kommentare
Walter Roberson
am 4 Sep. 2020
G: in this context is the drive letter that the original poster was using to save the file.
Walter Roberson
am 4 Sep. 2020
Bearbeitet: Walter Roberson
am 4 Sep. 2020
None of the following support saving 3d matrices in 3d form:
- save -ascii
- dlmwrite
- xlswrite
- writetable, writematrix, writecell
- imwrite for most image types
The following are some of the formats that support saving 3d matrices as 3d:
- save (not -ascii)
- Tiff class
- dicomwrite
- imwrite for a few image formats such as tiff
- EDF file format support
- HDF file format support
- json
Weitere Antworten (1)
luchen li
am 2 Nov. 2017
Hi, what does the wtpt* in
Q(:,:, b) = wtpt*GP(:,:,b) ; means?
1 Kommentar
Walter Roberson
am 2 Nov. 2017
That is something form the user's original code. We do not have any information on what the user was attempting to compute back then. It is not relevant to the matter of saving 3D arrays: it just illustrates how the user was constructing the 3D array.
Siehe auch
Kategorien
Mehr zu Read, Write, and Modify Image finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!