我有两个向量P和D.我编写了下面的代码,它查看D的每个元素,然后在P中找到相同的元素(两个元素只有不同的顺序),并返回该元素的索引P.以下代码能够做到这一点。
for i=1:17
ind = find(ismember(P,D(i)));
ind
msgbox(sprintf('\n i is: %d\n',ind));
end
问题在于我希望每个人都能得到这样的信息。要存储在数组中的值。
for i=1:17
ind(i) = find(ismember(P,D(i)));
msgbox(sprintf('\n i is: %d\n',ind));
end
返回错误。
是否可以将find(ismember)分配给数组的不同条目?
谢谢!
编辑:
我的向量P和D如下所示:
P = {'Fz' 'Fp1' 'Cz' 'T3' 'T4'}
D = {'T4' 'Cz' 'T3' 'Fp1' 'Fz'}
我目前得到的错误是: 在赋值A(:) = B中,A和B中的元素数必须相同。
答案 0 :(得分:2)
您不必自己实现此功能,ismember
已经可以执行此操作:
P = {'Fz' 'Fp1' 'Cz' 'T3' 'T4'};
D = {'T4' 'Cz' 'T3' 'Fp1' 'Fz'};
[~, ind] = ismember(D, P)
结果
ind =
5 3 4 2 1
但如果你真的想自己做 - 你的代码基本上已经可以了
ind = zeros(size(D));
for i = 1 : numel(D)
ind(i) = find(ismember(P, D(i)));
end
并给出相同的结果。