Plotting 3D Animation from 4-D Data

조회 수: 11 (최근 30일)
Adalric Leung
Adalric Leung 2020년 7월 4일
댓글: Adalric Leung 2020년 7월 5일
Hi,
I'm trying to plot an animated 3D plot from some data that I've calculated. The matrix is a 4D matrix that is a function of x y z and time, where at each point, the temperature of that point is represented.
For example, in the sample values below, it can be seen that "val(:,:,1,1)" represents the temperatures at each coordinate of space in the x-y plane on the first z-plane and at the first point in time. Likewise, the values found in "val(:,:,2,1)" represent the temperatures at each coordinate of space in x-y plane for the SECOND z-plane at the first point in time. This continues until all the temperature values are displayed for each position in x, y, and z, at the first point in time. After which, the sequence repeats at "val(:,:,1,2)" which displays the temperatures at each x-y coordinate for the first z-plane but at the SECOND point in time.
Thank you for any help in advance.
  댓글 수: 2
darova
darova 2020년 7월 4일
Please use attachment button to attach the data
Adalric Leung
Adalric Leung 2020년 7월 4일
Sorry, I've reattached the file in the main question. Thank you!

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

채택된 답변

darova
darova 2020년 7월 5일
Here is the start
clc,clear
load 4D_Data.mat
% initialization of surfaces
for j = 1:size(T_adi,3)
h(j) = surface(T_adi(:,:,j,1));
end
view(3)
% change data
for i = 1:size(T_adi,4)
for j = 1:size(T_adi,3)
set(h(j),'zdata',T_adi(:,:,j,i)+20*j)
end
pause(0.1)
i
end
  댓글 수: 3
darova
darova 2020년 7월 5일
maybe this will be helpfull
load 4D_Data.mat
[m,n,k,l] = size(T_adi);
[x,y,z] = meshgrid(1:m,1:n,1:k);
for i = 1:size(T_adi,4)
slice(x,y,z,T_adi(:,:,:,i),[3 m-2],[3 n-2],[3 k-2])
% alpha(0.5)
pause(0.1)
end
Adalric Leung
Adalric Leung 2020년 7월 5일
Thank you, this is perfect!!!

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Animation에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by