除matlab中的一个像素外的所有像素

时间:2013-05-23 09:43:14

标签: matlab matrix matrix-indexing

假设3x3中有matlab矩阵。如果我们输入x(:),这将选择所有矩阵中的元素,对吗?

我们如何选择除元素x(2,2)以外的所有电子?在这种情况下我们应该输入什么?

感谢。

2 个答案:

答案 0 :(得分:1)

我会这样做:首先,创建一个true s的逻辑数组,如果用作索引掩码,它将选择所有元素:

mask = true(size(x) );

现在将元素2,2设置为false,因此取消选择它:

mask(2,2) = false;

现在使用此蒙版从x中选择元素:

myValues = x(mask);

编辑:删除了第二个错误答案。

答案 1 :(得分:0)

您可以使用:

 A(setdiff(1:numel(A),ceil(numel(A)/2)))

例如,输入为:

>> A = randi(100,3)

A =

    49    71    68
    45    76    66
    65    28    17

输出结果为:

>> A(setdiff(1:numel(A),ceil(numel(A)/2)))

ans =

    49    45    65    71    28    68    66    17