我要从一个单元格数组创建一个邻接矩阵,但是面临两个主要问题:
我不知道如何访问单元阵列的元素;因此使用了专门的方法。
(也是最重要的),代码会产生错误,并且部分结果也很奇怪!
代码如下:
for i=1:N
L=size(Al{i});
Len=L(1,2);
for j=1:Len
elm=Al{i};
D=elm(i,j);
Adjm(i,D)=1;
end
end
代码产生此错误:
P.S .:该代码是构造邻接矩阵以表示图像内超像素邻接的程序的一部分。可能有一个特定的解决方案!
答案 0 :(得分:4)
有很多方法可以改善代码,但您看到的特定错误是因为您想要D=elm(1,j);
而不是D=elm(i,j);
。请注意,1
而不是i
。
一种更有效的方法,
for i=1:numel(Al)
Adjm(i,Al{i})=1;
end
与您的代码一样,这假设Al
中没有空元素。