在matlab中查找和替换?

在matlab中查找和替换?,matlab,cell-array,Matlab,Cell Array,我想在matlab中查找并替换所有内容(就像我们在MS office中所做的那样) 我有一个细胞数组LUT\u HS\u complete(第1列包含标识符,第2列包含蛋白质名称,第3列包含摘要)。这是我的查找表。另一方面,我有我的蛋白质-蛋白质相互作用数据(命名为Second_layer,标识符在前两列,分数在第3列) 我想用查找表中相应的蛋白质名称替换我的Second_layer中的前两列 我尝试了stratch,但那对我没有帮助 Source_gene = Second_layer(:,

我想在matlab中查找并替换所有内容(就像我们在MS office中所做的那样)

我有一个细胞数组
LUT\u HS\u complete
(第1列包含标识符,第2列包含蛋白质名称,第3列包含摘要)。这是我的查找表。另一方面,我有我的蛋白质-蛋白质相互作用数据(命名为
Second_layer
,标识符在前两列,分数在第3列)

我想用查找表中相应的蛋白质名称替换我的
Second_layer
中的前两列

我尝试了
stratch
,但那对我没有帮助

Source_gene = Second_layer(:,1); Source_gene = regexprep(Source_gene,'[-/\s]','');
Target_gene = Second_layer(:,2); Target_gene = regexprep(Target_gene,'[-/\s]','');
Inter_score = Second_layer(:,3);

%%
for i=1:length(Source_gene(1:end,1));
    SG = strmatch(Source_gene(i),LUT_HS_complete(1:end,1),'exact');
    renamed_Source_gene(SG,1) = LUT_HS_complete(SG,2);
end

for j=1:length(Target_gene(1:end,1));
    TG = strmatch(Target_gene(j),LUT_HS_complete(1:end,1),'exact');
    renamed_Target_gene(TG,1) = LUT_HS_complete(TG,2);
end

如果你能找到解决办法。这将是一个很大的帮助。

这对你有用吗

renamed_Second_layer(:,1)=LUT_HS_complete(cellfun(@(x) find(strcmp(x,LUT_HS_complete(:,1))),Second_layer(:,1)),2);
renamed_Second_layer(:,2)=LUT_HS_complete(cellfun(@(x) find(strcmp(x,LUT_HS_complete(:,1))),Second_layer(:,2)),2);
renamed_Second_layer(:,3)=Second_layer(:,3);

这对你有用吗

renamed_Second_layer(:,1)=LUT_HS_complete(cellfun(@(x) find(strcmp(x,LUT_HS_complete(:,1))),Second_layer(:,1)),2);
renamed_Second_layer(:,2)=LUT_HS_complete(cellfun(@(x) find(strcmp(x,LUT_HS_complete(:,1))),Second_layer(:,2)),2);
renamed_Second_layer(:,3)=Second_layer(:,3);