save a three dimensional matrix

조회 수: 11 (최근 30일)
Fariba
Fariba 2012년 8월 16일
편집: Walter Roberson 2020년 9월 4일
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

채택된 답변

Titus Edelhofer
Titus Edelhofer 2012년 8월 16일
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
Walter Roberson
Walter Roberson 2020년 9월 4일
G: in this context is the drive letter that the original poster was using to save the file.
Walter Roberson
Walter Roberson 2020년 9월 4일
편집: Walter Roberson 2020년 9월 4일
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

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

luchen li
luchen li 2017년 11월 2일
Hi, what does the wtpt* in
Q(:,:, b) = wtpt*GP(:,:,b) ; means?
  댓글 수: 1
Walter Roberson
Walter Roberson 2017년 11월 2일
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.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Read, Write, and Modify Image에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by