选择相同范围内的矩阵行

时间:2017-03-18 14:00:50

标签: matlab matrix

我有一个像这样的矩阵:

a=[ 20 30 45 55;
    25 25 50 60;
   100 29 36 52;
    28 33 48 62];

我想要另一个矩阵,使得这个新矩阵的行在a矩阵的第一行的±10范围内。
例如,在这种情况下,我们有矩阵b

b=[20 30 45 55;
   25 25 50 60;
   28 33 48 62]

1 个答案:

答案 0 :(得分:3)

使用bsxfun(或implicit expansion如果您有MATLAB 2016b或更高版本)从第一行中减去所有行,并取abs olute值。然后使用any~一起查找(define (mintwo lst) (cond ((null? (cdr lst)) (car lst)) ((< (car lst) (mintwo (cdr lst))) (car lst)) (else (mintwo (cdr lst)))) ) (define (maxtwo lst) (cond ((null? (cdr lst)) (car lst)) ((> (car lst) (maxtwo (cdr lst))) (cdr lst)) (else (maxtwo (cdr lst)))) ) 的行,这些行不包含第一行±10范围之外的任何值。然后最后使用logical indexing来选择那些行。

<强>代码:

a

给定b = abs(bsxfun(@minus, a,a(1,:))); b = a(~any(b>10,2),:); 的输出:

a