![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/291710/image.png)
How to combine multiple arrays and do plotting showing min ave max?
1 次查看(过去 30 天)
显示 更早的评论
Hi,
I have Variable A (1000x1 cell), and inside that cell is is 1000 samples of numbers (8760x21 double -- screenshot below). How can I generate an 8760x21 matrix on each of the following:
- Minimum -- min of all the 1000 samples
- Average -- average of all the 1000 samples
- Maximum -- max of all the 1000 samples
Further, how to have a plot showing uncertainty in each 21 parameters (columns). By uncertainty, I want to plot in x-axis the number of hours (1 - 8760) and the correponding min ave max of parameter 1 (column 1) on the y-axis, then eventually repeat it for parameter 2 (column 2) so on and so forth. Thank you.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/291701/image.jpeg)
0 个评论
采纳的回答
Ameer Hamza
2020-5-9
编辑:Ameer Hamza
2020-5-9
Try this code
% generate sample data
A = cell(1,1000);
for i=1:numel(A)
A{i} = rand(8760, 21);
end
% generate min, max, and average values
M = cat(3, A{:});
result(:,:,1) = max(M, [], 3); % max value
result(:,:,2) = min(M, [], 3); % min value
result(:,:,3) = mean(M, 3); % average value
I guess you want to plot min, max, and average value for each column on a seperate axes. Run the following code to plot the data
figure('WindowState', 'maximized');
ax = axes();
tiledlayout('flow');
for i=1:size(result,2)
ax = nexttile;
hold(ax);
for j=1:size(result,3)
plot(result(:,i,j));
end
title(sprintf('Colums: %d', i))
xlabel('days');
ylabel('values');
legend({'max', 'min', 'average'});
end
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/291710/image.png)
9 个评论
Ameer Hamza
2020-5-10
Is the problem solved? Can you show what you have tried and how you wan to improve it?
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Line Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!