MATLAB只从矩阵中删除某些零

时间:2011-10-27 14:47:56

标签: matlab matrix vector

我已经看到了很多关于如何删除前导和/或尾随零的答案,以及如何从向量或矩阵中删除所有零。但是,我需要做的只是删除其中一些。我有两个矩阵,我只想删除它们都为零的条目。它们是二维x和y坐标,使用特征求解(我可以根据需要提供更多细节),我只想删除两个矩阵在相同索引处包含零的值。我可以轻松地将矩阵转换为向量并使用向量,因此非常感谢任何一种情况下的任何帮助。

1 个答案:

答案 0 :(得分:5)

为了简单起见,我们假设您使用的是名为XY(长度相同)的向量,并且您只想删除两个向量都为零的条目。这是(未经测试)的方式:

% Find the indexes where either X or Y is different from zero
% (these are the indexes of the components we want to keep)
I = find(X~=0 | Y~=0);

% Select the desired components from X and Y
X=X(I);
Y=Y(I);

编辑:正如Oli在下面指出的那样(以及stefano进一步解释),您应该使用逻辑索引来获得更好的性能。

相关问题