Таблица / Дерево значений
Мой вопрос:
Есть ли способ создать дерево значений? Что-то вроде вывода команды TreeForm, но со значениями в узлах?
Зачем мне это?
Я пытаюсь сделать полную программу для анализа результатов моих лабораторных занятий. Каждому столбцу данных назначается символ. В общем, каждый столбец имеет смысл: это 'Это не просто куча разных переменных. Что я хочу сказать, так это то, что в целом расчеты сделаны "колонна мудрая.Моя проблема, когда мне нужно сделать расчет, который нуждается в болееhorziontal» структура: присваивание переменных столбцам недостатковгоризонтальная гибкость , (В некотором смысле, это проблемы, которые решаются в Excel с помощью$$
и массив формул)
позвольте мне проиллюстрировать пример:
y={1,2,3,4,5,6,7,8,9};
x={-1,-2,-3};
Я хочу связать 1 ;; 3, 4 ;; 8, 9 ;; 9 частей y с каждым элементом x. Под ассоциацией я подразумеваю, что для некоторого вычисления вход функции будет иметь в качестве аргумента каждый из этих наборов.
Я знаю о таких функциях, как Map, Apply, Thread и MapThread. Я'Я использовал их для решения такого рода проблем, но иногда это немного сбивает с толку.
Я также знаю о разделе, который решит мою проблему, если я захочу разделить y в подрешетках одинаковой длины.
Как я сказал в своем вопросе, я хочу построить что-то вроде сети / дерева, которое "архивы» Структура аргументов в каждом шаге моих расчетов. Нечто подобное в сетевых теориях, когда каждый узел в виде связанного с ним списка 'подключения к остальной части сети. Обратите внимание, что этот список должен содержать не значения, а какие-то координаты подключенных узлов.
Пример: Рассчитать среднее и среднеквадратичное отклонение нерегулярного распределения длинn={3,2,5}
из списка
y={3,5,8,7,9,4,6,2,1,5};
Мой очень концептуальный подход:
Первым столбцом моей таблицы / дерева будут данные y. Чтобы сослаться на какое-то значение в некотором столбце, я буду использовать пару координат i, j: i обозначает столбец, а j обозначает внутреннюю позицию. Я назначу y координату i = 1.
Для расчета средств, что за "расчет связи " я имею?
Yav=F1[y]=Mean[y]
Столбец средних, Xav i = 2, будет иметь 3 элемента. Каждому из них я назначаю список связей для y:
(Соединение "" повторяется с C "")
CYav[[1]]: {1,{1,2,3}}
CYav[[2]]: {1,{4,5}};
CYav[[3]]: {1,{6,7,8,9,10}}
Связь записывается в виде {i, {j 's элементов i}}
Теперь давайтеs рассчитать среднеквадратичное отклонение. То есть ,
Ymsd=F2[y,Yav]=Mean[(y-Yav)^2]
Этот столбец какi=3
а также 3 элемента.
Для этого расчета я хочу использовать столбцы i = 1,2. Расчетные соединения с y такие же, как те, что используются для вычисления Yav. Но теперь мне нужно подключить Ymsd к Yav.
CYmsd[[1]]: {{1,{1,2,3}},{2,1}}
CYmsd[[2]]: {{1,{4,5}},{2,2}}
CYmsd[[3]]: {{1,{6,7,8,9,10}},{2,3}}
Теперь соединения - это пара соединений первого типа, по одному на каждый связанный столбец.
После назначения коннектов я бы использовал функцию, которая выбирала бы правильные значения, руководствуясь созданной картой, и применяла F1, F2.