【发布时间】:2014-11-04 13:52:22
【问题描述】:
如果A是一系列二维坐标点,例如:
>> A = [1 2; 3 4; 5 6; 7 8; 9 0];
A =
1 2
3 4
5 6
7 8
9 0
和B 包含两个单元格,每个单元格都是“A”的一部分,仅用x 值(第一列)表示,意思是:
>> B = {[3; 7];[5]}
B =
[2x1 double]
[ 5 ]
我正在寻找一种解决方案,将B 单元格搜索到A 并给出这些点的坐标。
这是我的代码,对于大量数据来说非常慢:
C = cell (length(B) ,1)
for i = 1 : length(B)
C{i} = A(ismember(A(:,1),B{i},'rows'),:);
end
C 是正确答案,包括 2 个单元格,它们是 B 的每个单元格的坐标:
C =
[2x2 double]
[1x2 double]
>> C{1}
ans =
3 4
7 8
和
>> C{2}
ans =
5 6
同样,虽然C 是正确答案,但我正在寻找更有效的解决方案。应该是cellfun?
【问题讨论】:
标签: arrays performance matlab comparison cell-array