# How to plot this type of data in MatLab?

1 view (last 30 days)
Gianluca Regina on 28 Nov 2020
Commented: M.Many on 29 Nov 2020
Dear MatLab users,
I'm trying to plot some data but I'm having some problems and I don't know which function is the most appropriate. What I need to do is the same as the chart below built on excel.
I have a vector of results, A, which is 360x1; a vector D which is 40x1, and a vector M which is 9x1 (note that 40*9=360). The vector A is built such that the first 40 elements refer to the first value of the M vector, and to the 40 elements of the vector D. The elements 41 to 80 refer to the second value of the M vector, and so on. In other words, the plane grid is defined by the vectors D and M, which are the x,y "coordinates" of the 360 values of the vector A.
How can I plot these values in MatLab? I searched a bit and I tried to use functions such as bar3 and hist3, but I failed.
% A is known from previous analyses
D = linspace(2.5 , 197.5 , 40 )';
M = linspace(4.75, 8.75, 9)' ;
% hist3( ?)
% bar3(?) Another question similar to this one is to divide every parallelepiped in 6 parts (hence, a 2160=40*9*6 result vector), which correspond to a 6x1 vector of predefined values. The final result should look like the screen_2 attached. I assume the code to be similar to the one of the first question, but again, not sure how to do it.
Thank you

M.Many on 28 Nov 2020
Hi,
you can try this
D = linspace(2.5 , 197.5 , 9 )';
M = linspace(4.75, 8.75, 9)';
bar3(reshape(A,40,9))
set(gca,'XTickLabel',M)
set(gca,'YTickLabel',D)
This is the closest I could get to the solution, hope it helps
M.Many on 29 Nov 2020
My pleasure.