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

Предположим, что у нас есть две матрицы в качестве входных данных, X а также Y, Я хотел бы регрессировать каждый столбец Y на каждом столбце X и рассчитать несколько параметров, а затем создать таблицу для результатов. Вот мой стартовый код:

function [Table]=create_table(Y,X)
    [n,p]=size(X); % size of both matrix is X
    for ii=1:p % iterate  over all variable 
        x=X(:,i);
        y=Y(:,ii);
        x = [ones(size(x)) x];% construct  X matrix 
        [b,~,~,~,~] = regress(y,x);

        %% let us suppose we would like to calculate two parameters
        unknown=b(1)*100-b(2);
        known=b(2)/b(1)+200
    end
end

В результате я хочу получить следующую таблицу (предположим, что p = 3):

Я знаю, что есть table команда в MATLAB, но я не знаю, как ее использовать здесь?

1 ответ

Решение

Непосредственно перед циклом for вы можете инициализировать таблицу (заполненную нулями для запуска) следующим образом:

T = table((1:p).', zeros(p, 1), zeros(p, 1), ...
          'VariableNames', {'Iteration', 'Unknown', 'Known'});

Затем вы можете заполнить строки вашей таблицы в цикле, заменив вычисления unknown а также known с этим:

T.Unknown(ii) = b(1)*100-b(2);
T.Known(ii) = b(2)/b(1)+200;
Другие вопросы по тегам