Я не знаком с 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}
ваша проблема тогда становится написание функций для построения и обхода дерева в выбранном представлении. Большинство функций дерева лучше всего записывать как рекурсии. Любой хороший текст и множество интернет-сайтов расскажут вам все, что вы хотите знать о таких функциях.
Как вы работаете в настоящее время? Возможно, начиная с этого мы можем помочь вам улучшить структуру данных или алгоритмы. – ahans
Thank Я хотел бы сообщить вам, что я хранил свой вектор-функцию (имя файла, гистограмму цвета) в структуре массива, а затем сохраняю его в файле базы данных (.mat). Я уменьшаю цвет до 4, так что в этом случае у меня есть 4 × 4 × 4 = 64 dim, я читал о R-дереве, он не подходит для высокоразмерных, я думаю, что при нормализации цвет, который я получаю 16-мерным, так что в этом случае я могу использовать R-Tree ... мой вопрос заключается в том, как я могу реализовать свои данные (FV и вектор расстояний) в R-дереве? ИЛИ любые предложения для другой структуры, моя цель заключается в использовании структуры индексирования при извлечении изображений. спасибо – 2010-01-19 15:19:11