Вы можете принять очень наивный подход и просто проложить каждый элемент ссылочного массива. Это довольно просто сделать:
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
Вы также могли бы сделать что-то более адаптивное, что может или не может быть то, что вы хотите. В этом подходе используются производные, чтобы определить, куда должна переключаться мягкая ссылка. Это можно считать немного круговым, так как ваша система выглядит как завышенная ПИД-система, и это использует выход для семени ввода.
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;
это совершенно possible- создать мягкий массив (используйте размер имущества для самой крупной из ваших двух массивов), заполнить проложенный массив меньший массив, а затем сравните. – ha9u63ar
Функция padarray позволяет добавлять значения только в конце или в начале или в обе стороны массива, но я этого не вижу. Мне нужно сопоставить конец и звезду или оба массива и заполнить некоторые элементы одного, потому что слишком малы. –
Я думаю, что с этим изображением обоих массивов без масштабирования необходимо понимать [data2] (https://drive.google.com/open?id=0B20R_Z0cMZiZLTBHWUtjWUZlUFU) –