在单元格数组中关联两个不同的变量

时间:2018-03-16 08:26:56

标签: matlab cell-array

假设我有一个单元格node_ID< 1x313>,其中包含(以及其他)与c_infos{1,i}.node_ID相关联的名称。 c_infos{1,i}.namenode_ID。我想为每个function [] = displayNodeCusts (c_infos) list = [] ; for i = 1:length(c_infos) for j = 1:length(c_infos) if c_infos{1,i}.node_ID == c_infos{1,j}.node_ID list(end+1) = c_infos{1,j}.name end end end end 创建一个矩阵,我们确实拥有所有相关的名称。

我开始时:

:root {
  --o: 0.2;
  --myColor:rgba(0, 187, 85, var(--o));
}

.textDiv {
  background-color: var(--myColor);
  color: #000;
  height:20px;
}

但后来我不知道哪个节点与名字相关联。

1 个答案:

答案 0 :(得分:0)

您可以使用名为 cellfun 的函数,该函数将在变量中的所有单元格中执行相同的任务。通过这样做,您可以在不必使用for循环的情况下提取所有名称。我写了一些代码作为例子。希望这会有所帮助。

listofnames = cellfun(@(x) x.name,c_infos,'UniformOutput',false);

uniquefromlist = unique(listofnames);

for aa = 1:length(uniquefromlist)
    allrelevantentries = strcmp(uniquefromlist{aa},listofnames);
    storage{aa} = {c_infos{allrelevantentries}};
end