[已答复] Matlab处理大量数据,需要将每个变量与其余的变量进行比较(比较过程调用外部函数),如何实现?

[复制链接]
啊哈哈112 发表于 7 天前
疑问:

1.在数据分析的过程中需要调用ScanMatch的工具包,通过函数将每个变量与其余的变量进行比较,如图所示,在此寻求批量处理的方法。

2.在结果输出时,每个变量的输出的结果为一列,将所有变量的结果汇总在一个表格中,如何实现呢?

求助:恳请大家给出宝贵建议,不胜感激!!!!


比较过程

比较过程

4 条回复


gywxd 发表于 6 天前
eval  函数专门处理这种问题

啊哈哈112 发表于 6 天前
gywxd 发表于 2022-8-4 08:22
eval  函数专门处理这种问题

前辈您好,我查看了eval函数的相关用法,但可能太过于粗浅,还存在一些问题,请指教!

疑问:主要是关于数据调用和循环的问题,我需要将数据集中的每一个变量与剩余的变量进行比较,因此我建立了两个相同的数据集a,b;希望可以从a中任意抽取一个变量,与b中所有的变量进行比较,并生成一列数据,但目前只能是将a中一个变量与b中相对应的变量进行比较,代码如下:
(代码十分不成熟,希望您可以提出宝贵的建议!)

data1 = matfile('Sdemo.mat');
data2 = matfile('Sdemo2.mat');
varlist1 = who(data1);  
m = size(varlist1,1);
varlist2 = who(data2);  
n = size(varlist2,1);
for i = 1:m  
    j = 1:n
    name1 = varlist1{i};
    var1 = data1.(name1);
    name2 = varlist2{j};
    var2 = data2.(name2);
    Score = ScanMatch(var1, var2, ScanMatchInfo);
    eval(['F',int2str(i),'=','Score']);
end

gywxd 发表于 6 天前
不用两个数据集
直接可以考虑用随机  n1
然后用a 中的第n1 个数据对  a中所有数据进行比对就行了。

啊哈哈112 发表于 6 天前
gywxd 发表于 2022-8-4 21:29
不用两个数据集
直接可以考虑用随机  n1
然后用a 中的第n1 个数据对  a中所有数据进行比对就行了。  ...

我试试,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表