
2个回答
展开全部
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]
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]
追问
x=-3:3;
x= -3 -2 -1 0 1 2 3
abs(x)>1
运行结果为ans= 1 1 0 0 0 1 1
那 是不是 y=x(1 1 0 0 0 1 1)这句为什么是将真值对应的元素取出来
追答
输入以下代码:
x = -3:3;
l = abs(x)>1;
p = [1 1 0 0 0 1 1];
whos; %上面l和p的形式上是一样的,但是通过whos查看变量类型,l的变量类型是logical,即逻辑变量,p的变量类型是double
x(p) %程序报错,因为p是实数数组,p被认为是下标。但matlab中下标从1开始,p中含有0
p = logical(p) % 将p变成逻辑数组
x(p) %得到正确结果
关键在于abs(x)>1返回的是一个逻辑变量

2024-08-07 广告
在东莞市大凡光学科技有限公司,我们利用Halcon软件处理机器视觉项目时,会用到自定义标定板以满足特定需求。Halcon支持用户根据实际应用场景自定义标定板形状与标记点。这不仅可以灵活应对不同工作环境,还能提高标定精度。通过调整圆点数量、间...
点击进入详情页
本回答由东莞大凡提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询