Plotting a 6 Dimensional Array

I have a 6 dimensional array with each dimension have 17 elements. Now I want to plot this array but don't know how. Can anyone please suggest a method to plot this array

3 Comments

What do you mean by 6 dimensional array? Is it a 17*17*17*17*17*17 matrix?
Yes it is a 17*17*17*17*17*17 matrix. I am working on some wind energy problems. Each dimension represents one wind turbine. Then I add all these powers to get the total power. The problem is a complex one. Therefore, I have to plot all the combinations of powers and the find the maximum. I have the combinations in this 6-D array, now I have to plot it somehow and then use some technique to find the maxima.
This problem in the future would have more turbines - means more dimensions
function plotm works for 6 dimensional data

Sign in to comment.

 Accepted Answer

Zoltán Csáti
Zoltán Csáti on 10 Jan 2015
Plot like a multivariate function: by its level sets.

5 Comments

Could you explain it a bit more please
You can display a function of two variables. But what about a function of three variables. We cannot represent it like the former one. In that case we fix one variable (give it a certain value, call it c) and plot the remaining two the usual way. We can set different values of c and we get the so-called isosurfaces. This is what you do when you deal with a multivariate function. Let f(x1,x2,...,xn) be a function of n variables. You will fix n-2 (or n-1) variables and will plot it as f(x1,x2,c1,...,c_(n-2)). If you choose different values for c_i, you can represent the function as a surface.
Now turn to that 6D array. You can do it like this:
% Assume that X and Y are given. The correspond to x1 and x2
% and M is the 6D array.
mesh(X,Y,M(:,:,1,1,1,1);
% If you want to plot it in the third and fifth dimension:
mesh(1,1,:,1,:,1);
Thank you. These are some very useful tips and solved most of my problem, except for one thing. When I try to plot the last two dimensions i.e. 5th and 6th like mesh(x,y,m(1,1,1,1,:,:)) then I get an error message that Z i.e. the last argument of mesh, must be a matrix, not a scalar or vector. Could you explain what's wrong with this one. I want to keep X and Y here as these variables show the scales of the plot. Could you explain it please.
Thank you again
It is quite ambiguous for me to deal with arrays of more than 3 dimensions. I suggest you to use a cell array instead, in which every cell would contain a matrix representing a wind turbine.
Try using the squeeze command:
mesh(x, y, squeeze(m(1,1,1,1,:,:)));

Sign in to comment.

More Answers (0)

Categories

Find more on 2-D and 3-D Plots in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!