Матричное описание алгоритма

Темы связанные с инженерными разработками, но не подходящие в другие ветки форума
Endeavour
junior
junior
Сообщения: 55
Зарегистрирован: 30 июл 2012, 16:00
Версия LabVIEW: 2011 & 8.0

Матричное описание алгоритма

Сообщение Endeavour »

Здравствуйте, уважаемые.
К сожалению, я уже слишком долго не описывал свои программки математической записью и сейчас нуждаюсь в вашей помощи кратко, в матричной форме, сформулировать пару шагов алгоритма обработки измерений:
1) для каждого из n измерений, один набор данных (1D строка, i) вычесть по-элементно из второго (1D столбец, j);
2) преобразовать (n*i*j)D матрицу результата первого шага: элементы по-строчно или по-столбцово объединяются в новый 1D массив длинной n*i*j, где n - количество измерений, i - размерность первого и j - вторго набора.
Буду очень признателен за вашу подсказку.
Последний раз редактировалось Endeavour 07 мар 2016, 20:33, всего редактировалось 1 раз.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3403
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Матричное описание алгоритма

Сообщение Artem.spb »

Endeavour писал(а): слишком долго не описывал свои программки математической записью .
что это значит?
и помощь в чём?
Нужно сказать, где прячется палитра работы с массивами? Описанные действия выполняются парой-тройкой стандартных функций. В чём сложность?
Endeavour
junior
junior
Сообщения: 55
Зарегистрирован: 30 июл 2012, 16:00
Версия LabVIEW: 2011 & 8.0

Re: Матричное описание алгоритма

Сообщение Endeavour »

Artem.spb писал(а):что это значит?
Нужно накатать пояснялку-объяснялку к программке в виде бумажки (doc, pdf ect.), в которой формулой/ами должны быть записаны эти два действия.
Artem.spb писал(а):и помощь в чём?
Не-не-не! В среде LabView я и спросонья эту часть программы изображу: и палитры, и типовые алгоритмы обработки мне известны. Мне нужно лаконично и абстрактно вне LabView описать, как данные обрабатываются. T.е. использовать общепринятый математический язык - формульную запись матричных операций. А ее то я, как раз, и забыл!
Последний раз редактировалось Endeavour 07 мар 2016, 20:34, всего редактировалось 1 раз.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3403
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Матричное описание алгоритма

Сообщение Artem.spb »

количество измерений, i - размерность первого и j - вторго набора.
если под размерностью понимается количество элементов, то сложно вычитать что-то из ничего, массивы должны быть одной длины.

1) C_ni = A_ni - B_ni,
n=0..N - строки
i=0..I - столбцы
новый 1D массив длинной n*i*j
Это тоже странно. Двумерный массив в первом шаге имеет ni элементов, если там конечно было именно вычитание.

D_j=C_ni,
n = j quot N
i = j rem N
Endeavour
junior
junior
Сообщения: 55
Зарегистрирован: 30 июл 2012, 16:00
Версия LabVIEW: 2011 & 8.0

Re: Матричное описание алгоритма

Сообщение Endeavour »

Artem.spb писал(а):массивы должны быть одной длины.
В моем случае, это - не обязательно. Для иллюстрации я подготовил одну картинку.
так, в общем виде, выглядит результат первого шага - 2D массив
так, в общем виде, выглядит результат первого шага - 2D массив
2D.png (2.14 КБ) 9560 просмотров
Как видно, i не обязано быть равным j.
новый 1D массив длинной n*i*j - тоже странно
Для пояснения этого действия я подготовил еще одну картинку.
так, в общем виде, выглядит результат второго шага - один из n 1D массивов, которые, затем, объединяются в один единый из n*i*j элементов
так, в общем виде, выглядит результат второго шага - один из n 1D массивов, которые, затем, объединяются в один единый из n*i*j элементов
1D.png (762 байт) 9560 просмотров
Надеюсь, эти иллюстрации пояснят мою задачу.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3403
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Матричное описание алгоритма

Сообщение Artem.spb »

Endeavour писал(а):
Artem.spb писал(а):массивы должны быть одной длины.
В моем случае, это - не обязательно. Для иллюстрации я подготовил одну картинку.
2D.png
Как видно, i не обязано быть равным j.
Ну так на картинках ответ и написан. В чём проблема? или я не так понимаю задачу.
Endeavour
junior
junior
Сообщения: 55
Зарегистрирован: 30 июл 2012, 16:00
Версия LabVIEW: 2011 & 8.0

Re: Матричное описание алгоритма

Сообщение Endeavour »

Проблема в том, что я забыл, как эти действия формулой записывать. Об этом то и вопрос был/есть/когда-нибудь не будет.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3403
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Матричное описание алгоритма

Сообщение Artem.spb »

C_ij = A_i - B_j
чем этот вариант не мил?
Endeavour
junior
junior
Сообщения: 55
Зарегистрирован: 30 июл 2012, 16:00
Версия LabVIEW: 2011 & 8.0

Re: Матричное описание алгоритма

Сообщение Endeavour »

Artem.spb писал(а):чем этот вариант не мил?
Спасибо, это подтверждает то, что я сам-себе надумал и в чем сомневался. А как быть со вторым шагом?
Artem.spb

Activity Автор
professor
professor
Сообщения: 3403
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Матричное описание алгоритма

Сообщение Artem.spb »

Artem.spb писал(а): D_j=C_ni,
n = j quot N
i = j rem N
Endeavour
junior
junior
Сообщения: 55
Зарегистрирован: 30 июл 2012, 16:00
Версия LabVIEW: 2011 & 8.0

Re: Матричное описание алгоритма

Сообщение Endeavour »

сожалею, ваша запись с "quot" и "rem" мне незнакома и, до сих пор, непонятна. Как называются эти действия? А может это - условия циклов или обозначения каких-то метасимволов?
Artem.spb

Activity Автор
professor
professor
Сообщения: 3403
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Матричное описание алгоритма

Сообщение Artem.spb »

готов спорить, что знакома
http://zone.ni.com/reference/en-XX/help ... remainder/
Endeavour
junior
junior
Сообщения: 55
Зарегистрирован: 30 июл 2012, 16:00
Версия LabVIEW: 2011 & 8.0

Re: Матричное описание алгоритма

Сообщение Endeavour »

Artem.spb писал(а):готов спорить, что знакома
Да, вы правы, конечно знаю. Только в толк не возьму выгоду применения ф-ии частного и остатка в парсинге двумерного массива.
мой обычный подход решения второго шага
мой обычный подход решения второго шага
2nd_step.png (4.71 КБ) 9524 просмотра
Поделитесь, пожалуйста, как вы себе представили это действие?
Artem.spb

Activity Автор
professor
professor
Сообщения: 3403
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Матричное описание алгоритма

Сообщение Artem.spb »

Только в толк не возьму выгоду применения ф-ии частного и остатка в парсинге двумерного массива.
Во-первых,
парсер:
Существительное, неодушевлённое, мужской род, 2-е склонение (тип склонения 1a по классификации А. А. Зализняка).
Значение: комп. программа или часть програмного кода, реализующая синтаксический разбор каких-либо входных данных (обычно — текста); синтаксический анализатор.

и где анализ в reshap-e массива?

Во-вторых, зачем плодить ненужные сущности?
reshape.png
reshape.png (19.37 КБ) 9520 просмотров
более того, в вашем варианте на последней итерации происходит попытка вытащить из массива несуществующий элемент (последний индекс = размер массива-1)

И в-третьих, мне почему-то кажется, что вам лень включить моСк и понять написанное мной. Или хотя бы напрячься и посмотреть индексацию элементов массива.
как вы себе представили это действие?
вот именно так и представил
D_j=C_ni,
n = j quot N
i = j rem N
возможно, наоборот
i = j quot N
n = j rem N
Endeavour
junior
junior
Сообщения: 55
Зарегистрирован: 30 июл 2012, 16:00
Версия LabVIEW: 2011 & 8.0

Re: Матричное описание алгоритма

Сообщение Endeavour »

Спасибо за терпение и правку. Подумал и понял. Решение с мультипликатором членов массива - очень элегантное. Вы правы. Вопрос закрыт.
Ответить

Вернуться в «Общие»