MATLAB:从数组中删除特定元素



问题1:我有一个1x15的数组,包含正整数和负整数。我希望实现一个MATLAB代码,它保留所有正整数,并跳过具有负内容的单元格。

我已经试过了:

X = [1 2 3 4 5 -10 1 -5 4 6 8 9 2 4 -2];
[r c] = size(X);
for i=1:r
for j=1:c
if X(i,j)<0
X(i,j)=X(i,j+1)
end
end
end

输出应该是:

X_new = [1 2 3 4 5 1 4 6 8 9 2 4]

我该怎么做?


问题2:

X = [1 2 3 4 5 -10 1 -5 4 6 8 9 2 4 -2]
Y = [5 3 8 9 4  5 6  7 4 7 9 5 2 1  4]

选自问题1

X_new = [1 2 3 4 5 1 4 6 8 9 2 4]

我需要删除Y中相应的值,以便:

Y_new = [5 3 8 9 4 6 4 7 9 5 2 1]

如何执行?

在MATLAB中,操作数组和矩阵比for循环解决方案容易得多,在您的任务中,可以查找和删除数组中的负值,简单地,如下所示:

Idx_neg = X < 0;  % finding X indices corresponding to negative elements
X ( Idx_neg   ) = [];  % removing elements using [] operator
Y ( Idx_neg  ) = [];   % removing corresponding elements in Y array

相关内容

  • 没有找到相关文章

最新更新