Remove elements from an array
5 次查看(过去 30 天)
显示 更早的评论
hi,
I have row IDs (or row numbers) of an array. i.e. k=[60:1462:3652136]. I have my YY array [3652500 x 2]. How can I remove the rows of k from YY and store in a different array called XX [2499 x 2].
Can somebody help me with that?
Thanks,
Dumindu.
0 个评论
回答(1 个)
dpb
2014-5-17
XX=YY(k,:);
I pointed you to this earlier I believe -- look up "logical addressing" in the documentation; it's still a key portion of Matlab syntax.
2 个评论
dpb
2014-5-17
编辑:dpb
2014-5-17
You've got indices in k that exceed the size(XX,1) so you've got to redefine what you mean.
The length(k) is, as you say, 2499, but from 3652501 on there aren't rows in YY to remove.
I see two ways you can go --
1) If you can live with whatever is in the result array that exists already in YY irrespective of the total elements in XX, then
k=[60:1462:length(YY)];
2) If it's mandatory to have 2499 elements in XX, then
XX=zeros(2499,2); % initialize, any value is ok (use nan(), say)
XX(k,:)=YY(k,:); % k as above
Any similar workaround just so you don't try to reference non-existent elements.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrices and Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!