MatLab函数,从最大或最小点向左或向右移动点
问题描述:
我想弄清楚如何找到一个函数,该函数将x点离开我设置的最小和最大点在matlab中的数组。MatLab函数,从最大或最小点向左或向右移动点
可以说我做max(data(row 1:row 2,column))
,它给了我一点。我想找到与左边4个点相对应的值,并且在该值的右边。
所以让我们说它告诉我,第5列的最大值是1.5,它位于行号5 我将如何使该功能向后移动4行/点?
例子:
max(data_10MIN(49000:51000,9)
ans = -3.5226
data_10MIN(50251) = -3.5226
,所以我只想知道,4分落后是50247
和移动4个前锋将50255
但我会如何对我有一个功能做到这一点?因为max(data_10MIN(49000:51000,9)
作为函数不会给我x
和y
值。
答
max函数还返回最大值的(first occurence)索引。您可以简单地抵消该值,并达到您想要的4点左/右。
[maxvalue, idx] = max(data);
left4idx = max(1, idx - 4);
right4idx = min(numel(data), idx+4);
left4_value = data(left4idx);
right4_value = data(right4idx);
(它是加/减一个索引时添加的边界检查是一个好主意,我在这里做的是使用最小/最大功能。)
好了,所以我觉得作品。不过,我认为我的情况有点不同。在我的脚本中,我有eval(['VCathodicOh3(2,i)=''min(''data_'varnames {1}'(49000:51000,9));'])其中vcathodicoh3是一个新变量i'使其对我的代码中的其他数据起作用。基本上我想在脚本中编辑这个函数,以便它左/右(取决于我想在哪种情况下使用哪一个)取4分而不是最小值。我如何将你的命令集成到我的代码中? –
使用'max'返回的索引归结为基本的matlab,阅读更多关于这里[here](http://*.com/documentation/matlab/235/introduction-to-matlab) –
eval(['VCathodicOh3( 2,i)=''min(''data_'varnames {1}'(49000:51000,9))']) –