Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Алгоритм] матрица косинусов векторов


Автор: knopka 25.3.2008, 14:46
Имеется матрица значений косинусов между векторами.
типа: 
       a     b      c
a  |1    |0.8 |0.3 |
b  |0.5 |1    |0.2 |
c   |0.2 |0.7 |1    |

Одинаковых векторов нет.
необходимо к одному выбранному вектору найти ортогональные или со значением косинуса 
в например в диапазоне от 0 до 0,3. При этом у найденных векторов, косинусы (между собой) 
тоже должны лежать в этом диапазоне. 
Тоесть нужно (как я понимаю) найти такие строчки и столбцы в матрице на пересечении которых значение от 0 до 0,3

Пока решаю задачу так: вычисляю в столбцах количество ячеек удовлетворяющих условию, затем удаляю
столбец где это количество меньше всего и также удаляю строку с таким же порядковым номером что и столбец.
И так повторяю до конца.

Результат то получаю, но не покидает чувство, что это не рационально. Может кто подскажет
более хороший алгоритм. Заранее спасибо.
  

Автор: Akina 25.3.2008, 16:38
Цитата(knopka @  25.3.2008,  15:46 Найти цитируемый пост)
Имеется матрица значений косинусов между векторами.

Это - массив в памяти?

Автор: knopka 25.3.2008, 17:37
Вообще я делаю в StringGrid e 

Автор: maxdiver 25.3.2008, 21:38
Что-то я никак не могу понять, почему матрица не симметрична. Почему угол между a и b не равен углу между b и a?

Автор: knopka 26.3.2008, 13:27
да нет она конечно симетричная, просто так записал.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)