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 commentaires

Alessandro Masullo
Alessandro Masullo le 9 Jan 2015
What do you mean by 6 dimensional array? Is it a 17*17*17*17*17*17 matrix?
Tanvir Ahmad
Tanvir Ahmad le 10 Jan 2015
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
geekyGiraffe
geekyGiraffe le 21 Juin 2017
function plotm works for 6 dimensional data

Connectez-vous pour commenter.

 Réponse acceptée

Zoltán Csáti
Zoltán Csáti le 10 Jan 2015

0 votes

Plot like a multivariate function: by its level sets.

5 commentaires

Tanvir Ahmad
Tanvir Ahmad le 10 Jan 2015
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);
Tanvir Ahmad
Tanvir Ahmad le 14 Jan 2015
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
Zoltán Csáti
Zoltán Csáti le 14 Jan 2015
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,:,:)));

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur 2-D and 3-D Plots dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by