1

我正在尝试gather()在 MatLab 中动态调用该函数。

我目前正在做这样的事情:

for index_1 = 1:1:document_count
  current_filename = "random_file"+index_1+".mat";
  data = load(current_filename);
  pci= gather(datasets.current_filename.pci.dist);
end 

在上面,数据被加载但是收集函数失败,我假设因为我在中间传递了一个字符串。我不确定解决方法可能是什么。

任何建议将不胜感激。

4

2 回答 2

0

我这样做的方式是:

fields = fieldname(data)
data = getfield(data,fields{1})

我使用这种技术来遍历子字段

pci_field = getfield(data, fields{1})
pci = gather(pci_field.dist)
于 2021-11-01T09:12:21.337 回答
0

将字符串 (current_filename) 用作struct. 见这里

for index_1 = 1:1:document_count
   current_filename = "random_file"+index_1+".mat";
   data = load(current_filename);
   pci= gather(datasets.(current_filename).pci.dist);
 end

也就是说,我猜您需要从文件名中删除扩展名 (.mat) 才能正常工作。例如,你真的有datasets.random_file1.mat.pci.dist吗?

于 2021-10-29T10:40:41.907 回答