Как сделать динамическую матрицу внутри цикла в Scilab? - PullRequest
0 голосов
/ 31 марта 2019

У меня есть динамическая 3d-матрица внутри цикла for в Scilab, где значения добавляются в матрицу на каждой итерации, как показано в фрагменте кода ниже.Моя проблема заключается в том, что каждый раз, когда я открываю Scilab и запускаю свой код, строка после цикла for будет выдавать сообщение об ошибке «Подматрица неправильно определена».

Я пытался удалить '(ii,:, :)«Нет ошибки, но результат не тот, который я хотел.Я добавил это снова, и код работал просто отлично.Когда я закрыл Scilab, открыл его и снова запустил, снова появилась ошибка.Может кто-нибудь сказать мне, что не так?Или есть другой способ создать динамическую матрицу внутри цикла for?

    for ii = 1:N
        Fn(ii,:,:) = repmat((1./VAL(ii)),[a b c]).*POP(ii,:,:);
        Fd(ii,:,:) = repmat((1./VAL(ii)),[a b c]);
    end

1 Ответ

1 голос
/ 01 апреля 2019

По крайней мере, перед циклом вы должны инициализировать сначала Fn и Fd до их известного максимального размера. Однако, кажется, что в двух внутренних строках вашего цикла есть несоответствие размера, если только a не равно 1.

...