上机练习3:创建一个元胞数组,各元胞分别为不同类型的变量,使用此数组熟悉元胞数组的创建、访问。用于统计本寝室各成员(8人)的情况,包括姓名、年龄、民族、成绩、身高、体重等信息,并找出身高最大者、姓氏相同者以及大家的平均体重。
时间: 2024-11-30 08:18:04 浏览: 20
上机练习3的目标是通过创建一个多维度的细胞数组来管理个人信息,比如姓名、年龄、民族、成绩、身高和体重等数据。你可以按照以下步骤来完成这个任务:
1. 首先,定义一个8行1列的元胞数组,每一行代表一个寝室成员的信息:
```matlab
cellArray = cell(8, 1); % 创建一个8行1列的细胞数组
```
2. 然后,填充每个单元格,例如:
```matlab
% 示例成员1到4的信息
cellArray{1} = {'Tom', 20, '汉族', 92, 175, 68};
cellArray{2} = {'Jerry', 19, '美国', 95, 180, 75};
cellArray{3} = {'Spike', 21, '英国', 88, 178, 70};
cellArray{4} = {'Tyke', 20, '中国', 90, 170, 65};
% 其他4名成员类似地填充
```
3. 访问特定位置的信息:
```matlab
name1 = cellArray{1}{1}; % 获取成员1的姓名
heightMax = max(cellArray(:, 5)); % 找出最高的人的身高
```
4. 统计身高和体重的平均值:
```matlab
averageHeight = mean(cellArray(:, 5)); % 平均身高
averageWeight = mean(cellArray(:, 6)); % 平均体重
```
5. 按姓氏查找相同的人:
```matlab
namesWithSameLast = {}; % 初始化存放同姓人员的集合
for i = 1:length(cellArray)
lastNames = split(cellArray{i}{1}, ' '); % 分割姓名获取姓氏
for j = 1:length(lastNames)
if ~ismember(lastNames{j}, namesWithSameLast) && length(find(strcmp(cellArray(:, 1), cellArray{i}{1}))) > 1
namesWithSameLast{end+1} = lastNames{j};
end
end
end
```
完成以上操作后,你就学会了如何创建、访问和处理元胞数组,并能根据需求进行数据分析。
阅读全文