一个表中有两列,一列为部门,有三个部门,另一个为生活满意度,怎样用matlab计算每个部门的平均生活满意度
时间: 2023-08-08 07:14:00 浏览: 71
假设表的名称为`data`,其中第一列为`department`,第二列为`life_satisfaction`,可以使用如下代码计算每个部门的平均生活满意度:
```matlab
% 读取表格数据
data = readtable('data.xlsx');
% 获取不同部门的名称
departments = unique(data.department);
% 计算每个部门的平均生活满意度
for i = 1:length(departments)
dept = departments{i};
avg_life_satisfaction(i) = mean(data.life_satisfaction(strcmp(data.department, dept)));
end
% 显示结果
result = table(departments, avg_life_satisfaction');
result.Properties.VariableNames = {'Department', 'AvgLifeSatisfaction'};
disp(result);
```
其中,`unique(data.department)` 可以获取表中所有不同的部门名称。在 `for` 循环中,`strcmp(data.department, dept)` 会返回一个逻辑向量,表示表中每个元素是否与当前部门名称相同,再将这个逻辑向量作为索引,即可取出对应部门的生活满意度数据,最后计算平均值。最后,使用 `table` 函数将结果存入表格,并显示出来。
阅读全文