Matlab с классами - сохранить структуру в пустой двойной массив - PullRequest
1 голос
/ 09 января 2020

Я пытаюсь создать класс в matlab

У него есть свойство children

properties
    children

Если эта переменная записана в - она ​​должна быть массивом структур, которые она завершается с

    function obj = Init(obj, valueList)
        %INIT Initialise with vector of new parameter sets
        newSet = obj.ParamSet;
        newSet.values = valueList;
        obj.children(end + 1) = newSet; % <<< error

Ошибка:

Преобразование в удвоение из структуры невозможно.

Это используемая структура

methods(Static)
    function paramset = ParamSet()
        newset.('values') = [];
        newset.('fitness') = 0;
        paramset = newset;
    end
end

1 Ответ

2 голосов
/ 09 января 2020

Простое решение - присвоить, если оно пустое:

if isempty(obj.children)
   obj.children = newSet;
else
   obj.children(end + 1) = newSet;
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...