Как я могу объединить таблицы с разным количеством строк?

В настоящее время я пытаюсь создать диаграмму обработки сигналов в MATLAB. Для того, чтобы сделать это, у меня есть 3 таблицы, для которых я хотел бы построить разные сигналы, от которых потребовалось бы объединение для того, чтобы они были нанесены на один и тот же график (но выделены так, чтобы видеть сигналы отдельно).

Пока что я попробовал:

% The variables below are examples of the tables that contain 
% the variables I would like to plot.

s1 = table(data1.Time, data1.Var1); % This is a 8067x51 table
s2 = table(data2.Time, data2.Var2); % This is a 2016x51 table
s3 = table(data3.Time, data3.Var3); % This is a 8065x51 table

% This gives an error of 'must contain same amount of rows.'
S = [s1, s2, s3];

% This puts the three tables into a cell array
S = {s1, s2, s3};

Любые предложения приветствуются.

1 ответ

Решение

Вы были близки Вам просто нужно объединить ваши таблицы вертикально, а не горизонтально:

S = [s1; s2; s3];
% Or in functional form
S = vertcat(s1, s2, s3);

Обратите внимание, что это работает, только если все таблицы имеют одинаковое количество переменных (то есть столбцов).

Другие вопросы по тегам