筛选出特定属性的样本进行操作(删除等)
导入数据
% 删除特定属性的行
clc,clear
opts = spreadsheetImportOptions("NumVariables", 5);
opts.Sheet = "Sheet1";
opts.DataRange = "B2:F155";
opts.VariableNames = ["VarName2", "VarName3", "VarName4", "VarName5", "VarName6"];
opts.VariableTypes = ["double", "double", "categorical", "categorical", "double"];
Untitled = readtable("整理的数据.xlsx", opts, "UseExcel", false);
clear opts
筛选并删除
A=Untitled(1:20,:);
B=A;
B(B.VarName4=="云南生菜" | B.VarName2==0.338,:) = [];
% |且
% &或
注释:
1.选取云南VarName4为生菜的样本且VarName2值为0.338的样本进行删除。
2. |
为且, &
为或。
选取具有某些相同属性的样本并将其中数据进行操作(求和,平均等)
求每一类中第一列数据的平均和求和。
数据B如图:
wen2_sixlei = ["花菜类" "花叶类" "辣椒类" "茄类" "食用菌" "水生根茎类"];
% 日期
cname = unique(B.VarName5);
D = zeros(length(cname),1);
求平均
for i=1:4
D(i)=mean(B{B.VarName5 == cname(i),1});
% 取wen2_xsrq的第1列求平均值
end
注释:
1.取wen2_xsrq的第1列求平均值
2.B{B.VarName5 == cname(i),1}
表格数组的提取方式,
利用逻辑数组进行提取。
求和
for i=1:4
D(i)=sum(B{B.VarName5 == cname(i),1});
% B{B.VarName5 == cname(i),1}为VarName5为cname(i)的第一列向量组
end
注释:
1.B{B.VarName5 == cname(i),1}为VarName5为cname(i)的第一列向量组。