时间表相同大小错误,但大小相同

问题描述 投票:0回答:1

我有来自三个不同时间线(来自不同日期的两个不同时间)的数据,我的目标是稍后使用 tfest 来估计传递函数。因此,我必须使它们具有相同的长度,并且最好给它们一个新的时间线,以便我可以稍后在一张图中绘制它们。这是我的看法:

% Auffüllen der kürzeren Zeitachsen mit den letzten Werten
if length(timeline_1) < max_timeline
    zeitachse_1 = linspace(timeline_1(1), timeline_1(end), max_timeline);
    daten_1 = [daten_1; repmat(daten_1(end,:), max_timeline - length(daten_1), 1)];
end

if length(timeline_2) < max_timeline
    timeline_2 = linspace(timeline_2(1), timeline_2(end), max_timeline);
    daten_2 = [daten_2; repmat(daten_2(end,:), max_timeline - length(daten_2), 1)];
end

if length(timeline_3) < max_timeline
    timeline_3 = linspace(timeline_3(1), timeline_3(end), max_timeline);
    daten_3 = [daten_3; repmat(daten_3(end,:), max_timeline - length(daten_3), 1)];
end

% Erstellen von neuen Timetables mit den modifizierten Zeitachsen und Daten
T_1 = timetable(timeline_1, daten_1(:, 1), daten_1(:, 2), daten_1(:, 3));

结果是这样的:

>> length(daten_1(:,1))

ans =

      113997

>> length(daten_1(:,2))

ans =

      113997

>> length(daten_1(:,3))

ans =

      113997

>> length(timeline_1)

ans =

      113997

但是我收到此错误:

Error using timetable (line 317)
All table variables must have the same number of rows.

Error in test (line 135)
T_1 = timetable(timeline_1, daten_1(:, 1), daten_1(:, 2), daten_1(:, 3));

有人有想法吗?

matlab timetable control-theory
1个回答
0
投票

似乎发生错误是因为变量 daten_1(:,1)、daten_1(:,2) 和 daten_1(:,3) 具有不同的长度,即使它们都基于 daten_1。

要解决此问题,您可以显式检查这些变量的长度:

length_daten_1_col1 = length(daten_1(:, 1));
length_daten_1_col2 = length(daten_1(:, 2));
length_daten_1_col3 = length(daten_1(:, 3));

如果这些长度不同,您将需要调查为什么会发生这种情况。在填充原始数据数组(daten_1、daten_2、daten_3)以匹配 max_timeline 之前,它们的长度可能不匹配。

确保所有数据数组在用repmat填充后具有相同的长度。如果不是,您可能需要调整填充逻辑以确保所有列具有相同的长度。

一旦确认所有数据数组具有相同的长度,您就可以继续使用修改后的数据数组创建时间表。如果您仍然遇到问题,请随时分享更多详细信息,我可以为您提供进一步帮助。

© www.soinside.com 2019 - 2024. All rights reserved.