假设我们在 中有一个3x3
矩阵matlab
。如果我们输入x(:)
,这将选择矩阵中的所有元素,对吗?
我们如何选择除 element之外的所有元素x(2,2)
?在这种情况下我们应该输入什么?
谢谢。
假设我们在 中有一个3x3
矩阵matlab
。如果我们输入x(:)
,这将选择矩阵中的所有元素,对吗?
我们如何选择除 element之外的所有元素x(2,2)
?在这种情况下我们应该输入什么?
谢谢。
我会这样做:首先,创建一个 s 的逻辑数组,如果用作索引掩码true
,它将选择所有元素:
mask = true(size(x) );
现在将元素 2,2 设置为 false,因此取消选择它:
mask(2,2) = false;
现在使用此掩码从 中选择元素x
:
myValues = x(mask);
编辑:删除第二个不正确的答案。
你可以使用:
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