clc;clear all;close all;
%读取ADMET.xlsx中的名称txt和数据num
[num,txt] = xlsread('ADMET.xlsx');
%定义结构体s
s = struct('name','value');
%初始化value
for i = 1:1974
s(i).value = 0;
end
%把ADMET.xlsx的名字和五个数据和存入到s中
for i = 1:1974
s(i).name = txt(i+1,1);
for j = 1:5
s(i).value = s(i).value + num(i,j);
end
end
%选出五个数据和大于等于三的向量
t = struct('name','value');
k = 1;
for i = 1:1974
if(s(i).value >= 3)
t(k).name = s(i).name;
for j = 1:5
t(k).value(1,j) = num(i,j);
end
k = k+1;
end
end
%把数据写入到.xlsx文件中
res = cell(1235,6);
title = {'SMILES','Caco-2','CYP3A4','hERG','HOB','MN'};
for i = 1:1235
res{i,1} = t(i).name;
for j = 1:5
res{i,j+1} = t(i).value(1,j);
end
end
result = [title;res];
xlswrite('result.xlsx',result);
这是最后生成的result变量截图
生成的excle截图
你好,建议最后两行用table来做,很便捷不容易出错:
result = [title;res];
xlswrite('result.xlsx',result);
换成:
T = cell2table(res, 'variablenames',title);
writetable(T, 'result.xlsx')
这样就很ok啦