matlab y=x(abs(x)>1)帮忙给解释下

x=-3:3;y=x(abs(x)>1);
2025-02-27 06:26:37
推荐回答(2个)
回答1:

abs(x)返回一个与x同样长的数组,每个元素取绝对值,得到
3,2,1,0,1,2,3

abs(x) > 1
返回与x同样长的逻辑数组,表示对abs(x)这个数组每个元素k做判断k>1,如果abs(x)第i个元素>1,那么第i个元素是TRUE,否则是FALSE
得到

T T F F F T T

最后, y = x(abs(x) >1)把x中所有TRUE对应的元素取出。这里是第1,2,6,7位元素
所以
y = [-3 -2 2 3]

回答2:

楼上的不对吧,y=x(abs(x)>1);返回的是数组x中绝对值大于1的元素
相当于这样:
clear all;clc;
x=-3:3;
id=find(abs(x)>1)
y=x(id)

id =
1 2 6 7
y =
-3 -2 2 3