MATLAB结构体变量导入excel中字符串没有显示


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变量截图

img

生成的excle截图

img

你好,建议最后两行用table来做,很便捷不容易出错:

result = [title;res];
xlswrite('result.xlsx',result);

换成:

T = cell2table(res, 'variablenames',title);
writetable(T, 'result.xlsx')

这样就很ok啦