选择同一表的两列时避免重复

时间:2017-07-08 14:24:55

标签: matlab boxplot

每次我想处理同一个表中的两个变量时,我会重复表格的名称来选择它们,如下例所示:

boxplot(hospital.Weight, hospital.Sex)

如果表名更改,则会出现问题,因为它需要进行两次更改才能使其正确。

有没有更优雅的方法来避免函数调用中的重复?

我试过了:

boxplot(hospital( : , {'Weight', 'Sex'}))

但是这会将列作为表和boxplot返回,据我所知只需要向量。

2 个答案:

答案 0 :(得分:1)

我要做的是在生成盒子图之前创建一个虚拟变量,这样你只需要换一行:

table_name = hospital; %this is the line you'd change if the table name changes
boxplot(table_name.Weight, table_name.Sex)

答案 1 :(得分:0)

answer by @qbzenker可能是最好的方法,但是如果你寻找其他东西,你可以使用单元格数组:

C = table2cell(hospital(:,{'Weight','Sex'})); % this is the only place to change the table name
boxplot([C{:,1}],[C{:,2}])

如果你想要一个更好的语法,你可以编写一个小函数,如:

function my_BoxPlot(T,F)
C = table2cell(T(:,F));
boxplot([C{:,1}],[C{:,2}])
end

然后使用您首选的语法调用它:

subplot 121
my_BoxPlot(hospital,{'Weight','Sex'})
subplot 122
my_BoxPlot(hospital,{'Age','Sex'})

2-boxplots