使用可选索引查找数组的差异

6次浏览(最近30天)
肖恩·沃森
肖恩·沃森 2021年6月4日
评论道: 亚当Danz 2021年6月9日
大家好,
我希望你在做,我有一个简单的问题,我有数组(1,24),现在我想找出区别并进行除法,比如[element1-element2 element2- element3 element3-element4...............element24-element23],我做的如下
i =一24
一个= 1 x24
%的第一个案例
a1 (i) =(我)——(i + 1)。/我——(i + 1),
%第二个案例
a1 (i) =(我)——(张)。/我——(张)
结束
但是,很明显索引导致了错误(第一种情况:index超过了数组元素的数量(24)。第二种情况:数组索引必须是正整数或逻辑值。)
在这种情况下,你能帮帮我吗?
6个评论
亚当Danz
亚当Danz 2021年6月7日
我试图向你们展示,当数值微分时,一个值的损失不是问题——这正是预期的行为。再次仔细阅读我之前的评论,以理解为什么你会失去一个值。
我会补充一个答案来建议另一种选择。

登录评论。

接受的答案

亚当Danz
亚当Danz 2021年6月7日
编辑:亚当Danz 2021年6月7日
用微分时损失1个值 diff (x, 1) 是预期的行为。这个函数计算矩阵中相邻值之间的差 [答案][b] 有n-1个比较。
也许你想要的是数字 梯度
对比 梯度 diff
y = exp ([1: .1:3]);
d = diff (y);
g =梯度(y);
大小(y)
ans = 1×2
1 21
大小(d)
ans = 1×2
1 20
大小(g)
ans = 1×2
1 21
x = 1:元素个数(y)
x = 1×21
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
持有
情节(x(2:结束),d,“b -”“DisplayName的”“差异”
情节(x, g,的r -“DisplayName的”“梯度”
传说
2的评论
亚当Danz
亚当Danz 2021年6月9日
我需要更多地了解你的目标。在你原来的问题中,索引错误是由由于微分使用而丢失1个值引起的 diff () .也许你不需要区分。也许你需要用不同的方法求导。或者你做的很好,你需要理解输出。

登录评论。

答案(1)

KSSV
KSSV 2021年6月4日
编辑:KSSV 2021年6月4日
N = length(a);
Iwant = (a(2:n)-a(1:n-1))./((2:n)-(1:n-1));
也看看吧 geadient
4评论
肖恩·沃森
肖恩·沃森 2021年6月4日
@KSSV 不幸的是,它没有显示出正确的结果。:(

登录评论。

标签

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!

翻译的