how to plot 4 dimensional data?

조회 수: 30 (최근 30일)
Mudasir Ahmed
Mudasir Ahmed 2018년 11월 21일
댓글: Walter Roberson 2020년 12월 27일
Hi
I want to plot my data in 4D map. data matrix is of 5000 by 4. each coloumn represent 1 quantity or variable. sample of data is given below.
z=
[1.000000000000000 1.100000000000000 2.300000000000000 16.000000000000000
1.000000000000000 1.100000000000000 2.400000000000000 16.000000000000000
1.000000000000000 1.100000000000000 2.500000000000000 15.000000000000000
1.000000000000000 1.100000000000000 2.600000000000000 15.000000000000000
1.000000000000000 1.100000000000000 2.700000000000000 15.000000000000000
1.000000000000000 1.100000000000000 3.800000000000000 15.000000000000000
1.000000000000000 1.100000000000000 3.900000000000000 15.000000000000000
1.000000000000000 1.100000000000000 4.000000000000000 15.000000000000000
1.000000000000000 1.100000000000000 4.100000000000000 15.000000000000000
1.000000000000000 1.100000000000000 4.200000000000000 15.000000000000000]
how to effeciently plot the given data in more easy visualiztion way. Please help me i will be highly thankful to you
with best regards
Mudasir.
  댓글 수: 4
Walter Roberson
Walter Roberson 2018년 11월 21일
Attach your data .
Mudasir Ahmed
Mudasir Ahmed 2018년 11월 22일
I am attaching the data file which is comprisedof a matrix 2000 by 4. it is incomplete data because my iterations are running for continuously last three days and may still run further three days more. So I just copy data to where I get the results till now. The total matrix will be 5000 by 4. Also sir, this is only the one case in which first colunm is constant and remain 1. however, in other cases it also varies as others are varying.

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

채택된 답변

Walter Roberson
Walter Roberson 2018년 11월 22일
Provided that you have complete data, then your data forms are regular cuboid
x = unique(data(:,1));
y = unique(data(:,2));
z = unique(data(:,3));
w = permute(reshape(data(:,4), length(z), length(y), []), [3 2 1]);
The data sample you provided is 2000 samples long; 2002 samples would have been required to complete a single cycle, so the sample data as is will not work with the above and would need to be padded first, such as with
data(2001:2002,:) = [1 3.1 9.9 1;1 3.1 10 1];
The marginal coordinates are stored in x, y, z .
The resulting w would be (for the sample data) 1 x 22 x 91.
After that you have the question of how best to plot data that has 3 input dimensions and 1 output dimension.
Typical ways to plot multidimensional data include:
  • isosurface
  • slice
  • volumeViewer
  • vol3d v2 (from File Exchange)
  • projections along different views
  • pointsize = 20; scatter3(data(:,1), data(:,2), data(:,3), pointsize, data(:,4)) -- that is, encoding the resultant dimension as color
In the case of your sample data (as padded) some of these will not work because your x data is singleton. However you can use
surf( y, z, squeeze(w).', 'edgecolor', 'none')
  댓글 수: 1
Mudasir Ahmed
Mudasir Ahmed 2018년 11월 27일
Thank you so much sir

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

추가 답변 (2개)

madhan ravi
madhan ravi 2018년 11월 21일
편집: madhan ravi 2018년 11월 21일
Read about isosurface.

Bartlomiej Mroczek
Bartlomiej Mroczek 2020년 12월 26일
Hello,
Anyone have any idea or experience?
I would like to get a spatial plot for the function f, but it is 4 dimensional.
How can this be done?
Script:
V2 = zeros(21,21); % zero value irrelevant
V4 = zeros(21,21); % zero value irrelevant
V6 = zeros(21,21); % zero value irrelevant
f = @(V1, V2, V3, V4, V5, V6) V1.*(10*V1-10*V2+20*V3-21*V4+30*V5-31*V6) - V2.*(10*V1-11*V2+22*V3-21*V4+30*V5-31*V6);
[V1, V3, V5] = meshgrid(0.9:0.01:1.1, 0.9:0.01:1.1, 0.9:0.01:1.1);
Z = f(V1, V3, V5, V2, V4, V6);
  댓글 수: 5
Bartlomiej Mroczek
Bartlomiej Mroczek 2020년 12월 26일
actually the file connected, weird thanx
Walter Roberson
Walter Roberson 2020년 12월 27일
You need to delete or rename /Users/bartlomiejmroczek/Documents/MATLAB/grid.m as it is interfering with using MATLAB's grid() function .

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

카테고리

Help CenterFile Exchange에서 Scalar Volume Data에 대해 자세히 알아보기

태그

제품


릴리스

R2014a

Community Treasure Hunt

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

Start Hunting!

Translated by