Я не знаком с R-деревьями конкретно, но в целом деревья являются динамическими структурами данных. Matlab на самом деле не создает динамические структуры данных, если вы не начнете использовать его возможности OO. Если вы не хотите этого делать, вы можете объединить свое дерево в массив ячеек. Например, я напишу (строго) двоичное дерево, сведенное в массив ячеек, что избавит меня от необходимости рисовать дерево. Здесь идет:
{1,{2},{3}}
, представляющее двоичное дерево с корнем 1 и ветвями слева до 2, справа до 3. Я могу сделать это глубже:
{1,{2,{5,6}},{3,{7,8}}}
, который добавляет еще один уровень к предыдущему дереву. Если вы хотите добавить данные в любой из узлов, то ваше (первое) дерево может выглядеть так:
{1,[a b c],{2,[e f]},{3,[h i j k l]}}
Альтернативой этому было бы определить ваши узлы отдельно, как это
node1 = [a b c]; node2 = [e f]; node3 = [h i j k l],
тогда ваше дерево становится
{node1, node2, node3}
Тогда ваша задача - написание функций для построения и обхода дерева в выбранном вами представлении. Большинство функций дерева лучше всего писать как рекурсии. Любой хороший текст и множество интернет-сайтов расскажут вам все, что вы хотите знать о таких функциях.