Matlab:两个不同大小的数组之间的区别

Matlab: Difference bettween two different sized arrays

是否可以找到两个不同大小的数组之间的差异?

我的问题是我有两个数组,缩放比例非常相似,我需要每个点的误差。

数据是这样的:-

偏航数据比偏航参考大得多

您可以采用一种非常天真的方法,只需填充引用数组的每个元素。这很简单:

n = length(yaw)/length(yaw_ref);

yaw_ref_pad = zeros(length(yaw), 1);
for j = 1:length(yaw_ref)-1
    yaw_ref_pad((n*j):(n*(j+1)) = yaw_ref(j);
end

您还可以做一些更具适应性的事情,这可能是您想要的,也可能不是您想要的。这种方法使用导数来确定填充参考应该切换到哪里。这可能被认为有点循环,因为您的系统看起来像一个过阻尼的 PID 系统,并且它使用输出作为输入的种子。

yaw_ref_pad = zeros(length(yaw), 1);
[x, peaks] = findpeaks(diff(yaw));
for j = 1:length(peaks)-1
    yaw_ref_pad(peaks(j):peaks(j+1)) = yaw_ref(j);
end

无论哪种方式,在填充 yaw_ref_pad 之后,您的结果就是

error = yaw_ref_pad - yaw;