作业帮 > 综合 > 作业

matlab求数组相邻元素之差绝对值大于10的个数!

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/06/28 03:15:45
matlab求数组相邻元素之差绝对值大于10的个数!
例如一个数组有a个元素,分别是R1,R2,……,R(i),……,Ra 求|R(i+1)-R(i)|>10的个数!
matlab求数组相邻元素之差绝对值大于10的个数!
A=rand(10,1)*100 ; % 假设A为10个0-100的随机数
B = sum(abs(diff(A))>10); % 没错,就是这么简单!
再问: 相邻元素之差!!就是第二个元素减去第一个元素之差绝对值、第三个元素减去第二个元素绝对值。。。第a个元素减去第a-1个元素之差 求这些差里边大于10的个数 必须是后一个减去前一个 ,
再答: 你可以看下diff函数的帮助:
diff(X), for a vector X, is [X(2)-X(1) X(3)-X(2) ... X(n)-X(n-1)].
这不就是相邻元素之差吗?
然后【绝对值>10】表达式:返回一样大的矩阵,>10的元素会返回逻辑值1,否则返回0,把这些逻辑值加起来就是个数了。
你试试看对不对再说。优秀的matlab程序应当尽量使用矩阵运算而不是拆开了循环。diff,abs,sum都是built-in函数,绝对高效
再问: 这个是数据    应该是 6

再答: 。。。你把x11改了干嘛,我写的第一行标了是我生成的随机数,为了程序能执行。你把x11=rand()那行删掉。另外,你遇到程序不对了,不去看workspace里这个变量的值吗?
再问: 大神!谢啦!!!