Matlab:两个不同大小的数组之间的差异

时间:2016-07-12 16:17:39

标签: arrays matlab vector array-difference

是否有可能找到两个不同大小的数组?

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

数据如下所示: -

enter image description here

偏航数据比Yaw Ref大得多。

1 个答案:

答案 0 :(得分:0)

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

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;