【发布时间】:2013-07-11 14:25:39
【问题描述】:
我希望有一个类似于这个 Arduino 函数的 MATLAB 函数: http://arduino.cc/en/Reference/map
基本上,我有一个基于时间的变量,其中有 67 个数据点,范围从 0 到 1.15,我想将它从 0 映射到 100%(所以,101 个数据点)。在 Arduino 中,这看起来像:
map(value, fromLow, fromHigh, toLow, toHigh)
我可以在 MATLAB 中使用 interp1 来获取 101 个数据点,但我只得到 0 到 1.15 之间的 101 个数据点。我知道我可以将每个值乘以 100/1.15,但这是不精确的。在我忽略的 MATLAB 中有没有更优雅的方法来做到这一点?
(这篇文章看起来很有希望,但这不是我要找的: Map function in MATLAB?)
谢谢
【问题讨论】:
-
在您链接到的 Arduino 参考页面上,他们甚至在底部提供了
map函数的代码:(x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;。请注意,这个函数似乎是用整数数学实现的,所以如果你想完全复制这个函数,你也需要在 Matlab 中这样做。 -
我知道我可以根据 Arduino 代码编写自己的函数,我的问题是 MATLAB 中是否已经内置了可以执行此操作的功能。谢谢。