你能创建一个血压与特定年龄的箱线图吗(MATLAB)
在我的项目中,我使用了一个名为hospital.mat的matlab样本数据集,并尝试创建一个血压与特定年龄段的箱线图(如下所示)。当我试图创建一个箱线图时,我收到一个错误,说矩阵尺寸必须一致。我认为这可能是因为血压数据同时测量了收缩压和舒张压(这很好),或者是因为它收集了所有年龄段患者的完整数据,而我只是在寻找特定年龄段的血压你能创建一个血压与特定年龄的箱线图吗(MATLAB),matlab,Matlab,在我的项目中,我使用了一个名为hospital.mat的matlab样本数据集,并尝试创建一个血压与特定年龄段的箱线图(如下所示)。当我试图创建一个箱线图时,我收到一个错误,说矩阵尺寸必须一致。我认为这可能是因为血压数据同时测量了收缩压和舒张压(这很好),或者是因为它收集了所有年龄段患者的完整数据,而我只是在寻找特定年龄段的血压 医院矩阵。年龄为100 x 1倍,医院矩阵。血压为100 x 2倍 load hospital.mat %Sample data provided by matlab
医院矩阵。年龄为100 x 1倍,医院矩阵。血压为100 x 2倍
load hospital.mat %Sample data provided by matlab
x=hospital.Age;
x(hospital.Age<35,:)=-1;
x(hospital.Age>=35 & hospital.Age<45)=-2;
x(hospital.Age>=45)=-3;
boxplot(hospital.BloodPressure==x(hospital.Age<35,:),x(hospital.Age<35,:));
load hospital.mat%样本数据由matlab提供
x=医院年龄;
x(医院年龄=35岁,医院年龄=45岁)=-3岁;
boxplot(hospital.BloodPressure==x(hospital.Age您可以将设置为分组变量的值存储在数据集中hospital
。boxplot
的第二个参数是分组变量,可以是任何值,因此在您的情况下,这可以是“年龄标签”
我使用了这些标签的abs
,以确保箱线图的年龄从左到右递增
load hospital.mat %Sample data provided by matlab
x = hospital.Age;
x(hospital.Age<35,:) = -1;
x(hospital.Age>=35 & hospital.Age<45) = -2;
x(hospital.Age>=45) = -3;
% store labels in data set to use as grouping variable
hospital.AgeLabels = x;
% create the figure
figure()
ax(1) = subplot(121);
boxplot(hospital.BloodPressure(:,1), abs(hospital.AgeLabels))
title('BloodPressure 1')
ax(2) = subplot(122);
boxplot(hospital.BloodPressure(:,2), abs(hospital.AgeLabels))
title('BloodPressure 2')
% set meaningfull ticklabels for both subplots
for ii = 1:2
ax(ii).XTickLabels = {'<35', '>=35 & <45', '>= 45'};
end
load hospital.mat%样本数据由matlab提供
x=医院。年龄;
x(医院年龄=35岁,医院年龄=45岁)=-3岁;
%在数据集中存储标签以用作分组变量
hospital.AgeLabels=x;
%创建图形
图(
ax(1)=子批次(121);
箱线图(医院血压(:,1),abs(医院年龄标签))
标题(“血压1”)
ax(2)=子批次(122);
箱线图(医院血压(:,2),abs(医院年龄标签))
标题(“血压2”)
%为两个子批次设置meaningfull标签
对于ii=1:2
ax(ii).XTickLabels={'=35&=45'};
结束
医院矩阵。年龄是100 x 1倍,医院矩阵。血压是100 x 2倍。谢谢你,我真的很感激!你的工作非常清晰,我很容易理解!