indexing error for loop: "In an assignment A(I) = B, the number of elements in B and I must be the same."
1 次查看(过去 30 天)
显示 更早的评论
Good Afternoon,
I am having a bit of trouble with my for loop. I have two data sets of A and B with a different number of rows but same number of columns. I would like the dimension size to match by taking the remaining points left in the larger matrix and finding the closest points (smallest distance) of that in the other set. This is done by the knnsearch function in matlab. Currently I am getting the error of "In an assignment A(I) = B, the number of elements in B and I must be the same." but when I remove the i from New_Bi the loop over writes itself... Any suggestions?!?
Thanks in advance.
[ma,na]=size(A); [mb,nb]=size(B);
range=[mb+1:ma];
od=knnsearch(B,A);
index=od(range);
for i=1:length(index)
New_Bi(i)=A(index(i),:);
end
New_B=[B; New_Bi]
New_A=A;
0 个评论
采纳的回答
Iain
2013-8-20
The issue is that you're trying to put a matrix into the space that a scalar would take. Try:
New_Bi(i,:) = A(index(i),:);
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!