用matlab将以下文字写为代码:1、存在一个名称为Shuju的EXCEL表,表中第1列是中心树的顺序编号,第2列是中心树的x坐标,第3列是中心树的y坐标,第4列是中心树的胸径数据,第5列是中心树的种类。 2、存在一个名称为zyshu的excel表,表中第1列是中心树的顺序编号,第2列是离中心树最近的第1棵树的编号,第3列是离中心树最近的第2棵树的编号,第4列是离中心树最近的第3棵树的编号,第5列是离中心树最近的第4棵树的编号。 3、根据中心树编号,在名称为Shuju的EXCEL表中,读取该编号对应的中心树的胸径数据,保存在名称为xiongj的excel表的第1列中。 4、根据名称为zyshu的excel表中,第2、3、4、5列中的编号,依次从该编号对应的名称为Shuju的EXCEL表中读取出该编号对应的胸径数据,保存在名称为xiongj的excel表的第2、3、4、5列中。 5、在名称为xiongj的excel表中,遍历每一行,并顺序编号,将编号依次保存在名称为daxiaobi的excel表的第1列中。依次比较名称为xiongj的excel表中每1行的第1列与第2、3、4、5列的数据值大小,当第1列比其他各列的数据值小时,变量赋值为1,否则赋值为0。比较完一行后,取变量赋值和的平均值,将值保存在名称为daxiaobi的excel表中每1行的第2列中。 6、保存名称为daxiaobi的excel表。
时间: 2024-03-11 09:44:30 浏览: 64
以下是用 MATLAB 编写的实现上述要求的代码:
% 1. 读取名称为 Shuju 的 Excel 表
[~,~,shuju] = xlsread('Shuju');
% 2. 读取名称为 zyshu 的 Excel 表
[~,~,zyshu] = xlsread('zyshu');
% 3. 根据中心树编号读取胸径数据到名称为 xiongj 的 Excel 表中
xiongj = zeros(size(shuju,1),1);
for i = 1:size(shuju,1)
xiongj(i) = shuju{i,4};
end
xlswrite('xiongj',xiongj);
% 4. 根据 zyshu 表中的编号读取胸径数据到名称为 xiongj 的 Excel 表中
for i = 1:size(zyshu,1)
for j = 2:5
idx = zyshu{i,j};
xiongj(i,j-1) = shuju{idx,4};
end
end
xlswrite('xiongj',xiongj,1,'B1:E1');
xlswrite('xiongj',xiongj,2,'A2:E2');
% 5. 遍历 xiongj 表并比较胸径数据大小
daxiaobi = zeros(size(xiongj,1),2);
for i = 1:size(xiongj,1)
daxiaobi(i,1) = shuju{i,1};
var_sum = 0;
for j = 2:5
if xiongj(i,j) < xiongj(i,1)
var_sum = var_sum + 1;
end
end
daxiaobi(i,2) = var_sum / 4;
end
xlswrite('daxiaobi',daxiaobi);
阅读全文