每次我想处理同一个表中的两个变量时,我会重复表格的名称来选择它们,如下例所示:
boxplot(hospital.Weight, hospital.Sex)
如果表名更改,则会出现问题,因为它需要进行两次更改才能使其正确。
有没有更优雅的方法来避免函数调用中的重复?
我试过了:
boxplot(hospital( : , {'Weight', 'Sex'}))
但是这会将列作为表和boxplot返回,据我所知只需要向量。
答案 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'})