Когда вы индексируете его с помощью (1)
, вы пытаетесь присвоить структуру первому элементу d.kids
, который уже является массивом double
и, таким образом, несовпадением типов.Просто назначьте для всего поля.
d.kids = struct('op', 2);
Чтобы инициализировать его структурой, с которой нужно начать, сделайте это, вызвав struct
без аргументов, вместо передачи []
.
d = struct('op',1, 'kids',struct());
Пока не поддавайся отчаянию и ненависти.Система типов может обрабатывать то, что вы хотите здесь;вы просто делаете основные синтаксические ошибки.Ознакомьтесь с руководством по началу работы с MATLAB, особенно с разделами «Матрицы и массивы» и «Программирование», которые можно найти в онлайн-справке (позвоните по номеру doc()
из Matlab) или на веб-сайте MathWorks .