如何在MATLAB中绘制矩阵列的直方图?
我必须为如何在MATLAB中绘制矩阵列的直方图?,matlab,matrix,plot,histogram,Matlab,Matrix,Plot,Histogram,我必须为MatrixE1的每一列绘制直方图。我该怎么做呢?这是我到目前为止写的 % Create a random 5 x 3 matrix filled with random values between 0 and 10 a0 = 0; b0 = 10; r = a0 + (b0-a0).*rand(1,1); matrixA = [randi([0 10]) randi([0 10]) randi([0 10]); randi([0 10]) randi([0 10]) randi([0
MatrixE1
的每一列绘制直方图。我该怎么做呢?这是我到目前为止写的
% Create a random 5 x 3 matrix filled with random values between 0 and 10
a0 = 0;
b0 = 10;
r = a0 + (b0-a0).*rand(1,1);
matrixA = [randi([0 10]) randi([0 10]) randi([0 10]); randi([0 10]) randi([0 10]) randi([0 10]); randi([0 10]) randi([0 10]) randi([0 10]); randi([0 10]) randi([0 10]) randi([0 10]); randi([0 10]) randi([0 10]) randi([0 10])]
% Create identity matrix 3 x 3
matrixB = eye(3,3)
% Create new submatrix of A with the last 3 rows
matrixC = matrixA(end-2 : end, :)
% Pair wise multiplication of C and B
matrixD = times(matrixC, matrixB)
% Concatenate Matrix A and D
matrixE1 = [matrixA ; matrixD]
% Plot histogram of columns.
matrixColumn1 = matrixE1(1 : end , end-2: end-2);
matrixFColumn2 = matrixE1(1 : end, end -1 : end-1);
matrixFColumn3 = matrixE1(1 : end, end : end);
您可以访问matrixE1中的每个列,如下所示:
firstCol = matrixE1(:,1);
secondCol = matrixE1(:,2);
thirdCol = matrixE1(:,3);
…然后您可以简单地使用comand hist()来绘制直方图。您可以将matrixE1中第一列的柱状图绘制为:
hist(firstCol);
如果我理解你的第二个问题:
“我会怎么做?历史(??)。如何获得matrixE1所有列的直方图?我应该做hist(矩阵1)吗?“”
在绘制一个柱状图的柱状图后,只需使用命令hold on。然后在同一个图上绘制另一个直方图。例如,如果要将第一列和第二列的柱状图从matrixE1绘制到同一个绘图,请键入:
hist(firstCol);
hold on;
hist(secondCol);
您可以访问matrixE1中的每个列,如下所示:
firstCol = matrixE1(:,1);
secondCol = matrixE1(:,2);
thirdCol = matrixE1(:,3);
…然后您可以简单地使用comand hist()来绘制直方图。您可以将matrixE1中第一列的柱状图绘制为:
hist(firstCol);
如果我理解你的第二个问题:
“我会怎么做?历史(??)。如何获得matrixE1所有列的直方图?我应该做hist(矩阵1)吗?“”
在绘制一个柱状图的柱状图后,只需使用命令hold on。然后在同一个图上绘制另一个直方图。例如,如果要将第一列和第二列的柱状图从matrixE1绘制到同一个绘图,请键入:
hist(firstCol);
hold on;
hist(secondCol);
还有另一种更简单但计算成本更高的方法:
plotmatrix(A)
对于任何矩阵A,这将生成输入矩阵所有两两组合的散点图的m×n图(不要对大矩阵执行此操作,因为大矩阵超出了屏幕上的显示范围)
您在顶部获得的是沿绘图矩阵主对角线的直方图
还有另一种更简单但计算成本更高的方法:
plotmatrix(A)
对于任何矩阵A,这将生成输入矩阵所有两两组合的散点图的m×n图(不要对大矩阵执行此操作,因为大矩阵超出了屏幕上的显示范围)
您在顶部获得的是沿绘图矩阵主对角线的直方图
由于其他答案(,)使用过时的函数
hist
而添加此答案
MATLAB建议避免使用hist
,现在支持()。转换是直接的
%MATLAB R2019a
%样本数据
NumPoints=2000;
a1=10*兰特(整数,1);
a2=wblrnd(3,7,NumPoints,1);
a3=7+0.75*randn(整数,1);
A=[a1 a2 a3];%数据矩阵
%使用过时的函数hist
为n执行Sturges规则,由于其他答案(,)而添加此答案
MATLAB建议避免使用hist
,现在支持()。转换是直接的
%MATLAB R2019a
%样本数据
NumPoints=2000;
a1=10*兰特(整数,1);
a2=wblrnd(3,7,NumPoints,1);
a3=7+0.75*randn(整数,1);
A=[a1 a2 a3];%数据矩阵
%为nDid实现Sturges规则如果您尝试hist()
?我会怎么做?历史(??)。如何获得matrixE1所有列的直方图?我应该做hist(matrixE1)吗?你试过hist()
?我会怎么做?历史(??)。如何获得matrixE1所有列的直方图?是否应该执行hist(matrixE1)?更新:来自文档:“hist
”不建议使用。更新。更新:来自文档:“hist
”不建议使用。改为使用。更新:来自文档:“hist
”不建议使用。改为使用。更新:来自文档:“hist
不推荐使用。改用。“更新。这是一个漂亮的把戏。注意……这是如何解决所有列在同一柱状图中可视化的问题的?当我运行你的代码时,它会沿着主对角线将它们放在单独的子图中。没错,我错过了他的那部分要求。在这种情况下,我将覆盖输出中的各个绘图。您的解决方案更完整,需要对数据有一定的理解才能正确缩放,是吗?考虑到MATLAB矩阵的性质,我不确定是否需要太多的理解。但不管情节如何,在一个可视化(或不同的领域尺度)中填充太多的内容是有实际限制的,这对于任何方法都可能发生。这是一个巧妙的技巧。注意……这是如何解决所有列在同一柱状图中可视化的问题的?当我运行你的代码时,它会沿着主对角线将它们放在单独的子图中。没错,我错过了他的那部分要求。在这种情况下,我将覆盖输出中的各个绘图。您的解决方案更完整,需要对数据有一定的理解才能正确缩放,是吗?考虑到MATLAB矩阵的性质,我不确定是否需要太多的理解。但不管如何绘制,在一个可视化(或不同的领域尺度)中填充过多的内容都有实际的限制,任何方法都会出现这种情况。