tutr = tripall(tripall(:,5)> -1,:); 不懂这个语法,求解读

问题遇到的现象和发生背景

tutr = tripall(tripall(:,5)> -1,:);

用代码块功能插入代码,请勿粘贴截图

这是一个MATLAB语句,tripall是一个矩阵,请问这个语法是什么啊,怎么理解这个呢?(勿喷,ball ball了)

img

img

img

%造一个矩阵
tripall = magic(5);
tripall(4,5)=-tripall(4,5);
tripall(2,5)=-tripall(2,5);

%逻辑矩阵的样子
logicA=tripall(:,5)> -1;

%这里代入上边的逻辑矩阵就明显了
tutr = tripall(tripall(:,5)> -1,:);

首先A(参数1,参数2)是对A进行框选
参数1是要哪些行,参数2是要哪些列。
A(1:3,4:5)这是框选1到3行,4到5列
如果只是:就是全要
A(:,1),所有行,第一列
tripall(:,5)> -1 是筛选条件,它会返回一个逻辑矩阵,就是返回一个只含有0或1的矩阵。它要截取所有行第五列,结果中大于-1的元素。左边所有行第五列会返回tripall的五列,它是个5X1的矩阵,对于它的所有元素,大于-1,就用1替换,得到的是一个5X1的逻辑矩阵。
再代入,可以看出,tutr 是截取第五列元素大于-1的行,并且所有列。