用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 21:44:34 浏览: 51
以下是用 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};
empty_var = [];
for j = 2:5
if xiongj(i,j) < xiongj(i,1)
empty_var(end+1) = 1;
else
empty_var(end+1) = 0;
end
end
daxiaobi(i,2) = mean(empty_var);
end
xlswrite('daxiaobi',daxiaobi);
阅读全文