реклама на сайте
подробности

 
 
> scilab vs python, что выбрать?
shf_05
сообщение Dec 25 2014, 09:51
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 22-04-08
Из: г. Екатеринбург
Пользователь №: 36 992



добрый день, коллеги.

ранее долгое время применял матлаб для создания m файлов, простенького gui, работы с com портами, файлами.

теперь матлаб для меня закрыт, встал вопрос использовать "бесплатное" ПО, выбираю между scilab и python.
задачи по обработке сигналов, алгоритмы в основном свои, так что интересует в первую очередь удобство визуализации результатов, возможность создания всевозможных фильтров, создание gui b работа с железяками.
посмотрел примеры и того и другого вроде примерно на одном уровне, но может быть это только на первый взгляд?

подскажите, пожалуйста у которого из них больше удобств, функциональнее библиотеки, в общем надо определиться, на что переходить.

спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
amaora
сообщение Dec 29 2014, 18:16
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 421
Регистрация: 2-01-08
Пользователь №: 33 778



Интереснее было бы компилировать код в алгебраической записи (на matlab языке или ином) в оптимальный код на C. Так, чтобы использовались известные свойства матриц. Например разреженность может заметно сократить количество операций при умножении. Матрицы могут быть симметричными, диагональными, ортогональными и т.д. Все это можно использовать при генерации оптимального по быстродействию (или другому критерию) кода. Давно ищу что нибудь подходящее. Самому за такое браться, серьезная задача.
Go to the top of the page
 
+Quote Post
Xenia
сообщение Dec 30 2014, 04:45
Сообщение #3


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(amaora @ Dec 29 2014, 21:16) *
Интереснее было бы компилировать код в алгебраической записи (на matlab языке или ином) в оптимальный код на C. Так, чтобы использовались известные свойства матриц. Например разреженность может заметно сократить количество операций при умножении. Матрицы могут быть симметричными, диагональными, ортогональными и т.д. Все это можно использовать при генерации оптимального по быстродействию (или другому критерию) кода.


Если матрица диагональная, то ее хранят в векторе sm.gif. А такие свойства, как симметрия и эрмитовость, обычно не позволяют ускорить операции сложения, вычитания и умножения, поскольку для этого требуется, чтобы ОБА операнда обладали таким свойством. Что же касается разряженных матриц, то это скорее не алгебраическая проблема, а ... "процессоростроительная", т.к. касается только того, способен ли FPU быстрее выполнять бинарные операции, если один из операндов нулевой. Причем, в электронной реализации (а так же на FPGA) такая проверка операндов на нулёвость не привела бы к замедлению арифметики с прочими числами, поскольку признак нулёвости регистра всегда можно сделать схемотехническим, экстренно отменяющим выполнение операции. Но если процессоростроители этого не предусмотрели, то проверять каждый операнд на нулёвость в программе будет не менее накладно по времени, чем честно умножать на нуль.

Тем не менее, я веду речь исключительно об удобстве использования арифметических операторов в матрично-векторных выражениях и ни о чем другом, т.к. всё другое традиционно производится через явные вызовы функций, а не средствами операторов. И если уж у вас обе матрицы настолько заковыристые, что их произведение через ухо вычислять быстрее, то и не пользуйтесь тогда операторами, а вызывайте для них функцию, которая вычисляет результат через ухо.

В конце концов, языки высокого уровня родились вместе с Фортраном, когда стало допустимо записывать арифметические операции посредством четырех операторов (+,-,*,/), используя скобки, и именно это вызывало бум! Потому как с помощью явного вызова функций можно было бы припеваючи продолжать жить на ассемблере.

Отсюда и вопрос мной поставлен так: допускает ли механизм определения операторов языка C++ определить их для матриц и векторов таким образом, чтобы три операции (+,-,*) над ними имели естественно-арифметический вид записи? Если да, то почему это до сих пор не сделано производителями библиотек линейной алгебры? А если где-то уже сделано, то где именно?
Go to the top of the page
 
+Quote Post
shf_05
сообщение Dec 30 2014, 05:40
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 22-04-08
Из: г. Екатеринбург
Пользователь №: 36 992



Xenia вы искали это?
http://www.quantstart.com/articles/Matrix-...The-Source-File
Go to the top of the page
 
+Quote Post
Xenia
сообщение Dec 30 2014, 06:00
Сообщение #5


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(shf_05 @ Dec 30 2014, 08:40) *


Нет, этого я не видела. Но даже и с вашей подачи не могу найти в этой статье место, где бы автор производил умножение C=A*B в операторном виде. Слишком ж там кода много вывалено, что пример, если он и был приведен, то там утонул.

Тогда как операции типа
A+=B
A-=B
на реализацию которых упирает автор статьи, очевидно реализуются без проблем, поскольку они бинарны, а не тернарны.
Тогда как организовать бинарным оператором операцию умножения в общем случае невозможно, т.к. там продукт может иметь иную размерность, чем каждый из операндов.
Go to the top of the page
 
+Quote Post
shf_05
сообщение Dec 30 2014, 06:34
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 22-04-08
Из: г. Екатеринбург
Пользователь №: 36 992



поищите C=A×B или // Left multiplication of this matrix and another
я так понимаю, на примере того, как сделал автор, можно перегрузить оператор * , чтобы он умножал какие угодно матрицы с предпроверкой их размерностей.
Go to the top of the page
 
+Quote Post
Xenia
сообщение Dec 30 2014, 07:05
Сообщение #7


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(shf_05 @ Dec 30 2014, 09:34) *
я так понимаю, на примере того, как сделал автор, можно перегрузить оператор * , чтобы он умножал какие угодно матрицы с предпроверкой их размерностей.


Я в собственной реализации перегружала оператор "=", нагружая выполнение операции именно на него, поскольку только в этом операторе известен адрес приемника результата. Тогда как операторы действий "+", "-", "*" возвращают у меня всего лишь малую структуру с адресами обоих операндов, флагами их транспонирования и типом операции (т.е. два адреса и один байт с флагами).

Вот поэтому мне и интересны чужие реализации "прикручивания". Тем более что реализация в лоб сопровождается дополнительным копированием результирующей матрицы, возвращаемой оператором, в приемник на этапе присваивания этого результата. А при больших матрицах эта довольно накладно, т.к. помимо копирования включает в себя деаллокацию промежуточного объекта, не говоря уже о необходимости его предшествующей аллокации. Т.е. результат операции при реализации в лоб переносится через промежуточный объект размером во всю матрицу, потому его при каждой операции приходится аллокировать, деаллокировать и дважды копировать его содержимое. Тогда как на этапе присваивания ("=") уже могут быть известны все три адреса, чтобы можно было запустить на них стандартную библиотечную функцию.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- shf_05   scilab vs python   Dec 25 2014, 09:51
- - Xenia   Цитата(shf_05 @ Dec 25 2014, 12:51) подск...   Dec 25 2014, 10:05
- - syoma   ЦитатаА чего вдруг MATLAB от вас закрылся? Или это...   Dec 25 2014, 11:02
|- - Xenia   Цитата(syoma @ Dec 25 2014, 14:02) Ну лиц...   Dec 25 2014, 13:22
|- - des00   Цитата(Xenia @ Dec 25 2014, 21:22) А заче...   Dec 25 2014, 14:13
|- - andrew_b   Цитата(des00 @ Dec 25 2014, 18:13) нужно ...   Dec 26 2014, 11:05
- - ViKo   Еще есть Octave. Пока выбирал, чем пользоваться, ч...   Dec 25 2014, 14:13
|- - amaora   Цитата(ViKo @ Dec 25 2014, 17:13) Еще ест...   Dec 25 2014, 16:34
- - _Pasha   Питон объединяет великое множество и другого софта...   Dec 25 2014, 18:17
|- - shf_05   спасибо всем за ответы, буду пробовать питон- он в...   Dec 26 2014, 05:35
|- - Xenia   Цитата(_Pasha @ Dec 25 2014, 21:17) Питон...   Dec 26 2014, 06:40
|- - _Pasha   Цитата(Xenia @ Dec 26 2014, 09:40) Так эт...   Dec 26 2014, 07:56
|- - Xenia   Цитата(_Pasha @ Dec 26 2014, 10:56) Во-пе...   Dec 26 2014, 08:18
|- - _Pasha   Цитата(Xenia @ Dec 26 2014, 11:18) А быва...   Dec 26 2014, 10:27
||- - Xenia   Цитата(_Pasha @ Dec 26 2014, 13:27) Как б...   Dec 26 2014, 12:52
||- - _Pasha   Цитата(Xenia @ Dec 26 2014, 16:52) Обмана...   Dec 26 2014, 17:23
|||- - shf_05   ну маета с установкой питона! поставил на ура...   Dec 27 2014, 10:07
||- - amaora   Цитата(Xenia @ Dec 26 2014, 15:52) Пробле...   Dec 29 2014, 18:53
|- - halfdoom   Цитата(Xenia @ Dec 26 2014, 11:18) А быва...   Dec 29 2014, 07:03
|- - Xenia   Цитата(halfdoom @ Dec 29 2014, 10:03) При...   Dec 29 2014, 09:30
|- - shf_05   Цитата(Xenia @ Dec 29 2014, 14:30) Умноже...   Dec 29 2014, 13:42
|- - SSerge   Цитата(shf_05 @ Dec 29 2014, 20:42) взять...   Dec 29 2014, 15:49
|- - shf_05   Цитата(SSerge @ Dec 29 2014, 20:49) не за...   Dec 29 2014, 17:02
- - serjj   Про питон ничего сказать не могу, но Scilab вполне...   Dec 26 2014, 13:47
- - Bear_ku   Python 2.7 + VCForPython27 Python 3.4 + Visual C+...   Dec 29 2014, 05:07
||- - _Pasha   Цитата(Xenia @ Dec 30 2014, 10:05) перегр...   Dec 31 2014, 01:20
||- - Obi   Добавлю свои 5 копеек... Python для меня - открыти...   Jan 3 2015, 11:17
||- - Xenia   Цитата(Obi @ Jan 3 2015, 14:17) Python дл...   Jan 3 2015, 11:29
||- - _Pasha   Цитата(Xenia @ Jan 3 2015, 15:29) А как н...   Jan 3 2015, 18:43
||- - Obi   Цитата(Xenia @ Jan 3 2015, 15:29) А как н...   Jan 4 2015, 08:04
||- - ViKo   Цитата(Obi @ Jan 4 2015, 11:04) Максимум ...   Jan 4 2015, 10:07
||- - Obi   Цитата(ViKo @ Jan 4 2015, 13:07) Я правил...   Jan 4 2015, 10:44
|||- - x736C   Цитата(Obi @ Jan 4 2015, 13:44) Нужно еще...   Jan 10 2015, 02:34
|||- - Obi   Цитата(x736C @ Jan 10 2015, 05:34) Какую ...   Jan 11 2015, 07:25
||- - _Pasha   Цитата(ViKo @ Jan 4 2015, 14:07) Я правил...   Jan 4 2015, 18:45
|- - amaora   Цитата(Xenia @ Dec 30 2014, 07:45) Если м...   Dec 30 2014, 15:11
|- - andyp   Цитата(Xenia @ Dec 30 2014, 07:45) Отсюда...   Feb 13 2015, 23:09
- - TSerg   Цитата(shf_05 @ Dec 25 2014, 12:51) добры...   Dec 29 2014, 18:28
- - _Pasha   ХУ нету под линь Закономерный вопрос про ХУ vs Ана...   Jan 10 2015, 12:30
|- - x736C   Цитата(_Pasha @ Jan 10 2015, 15:30) а так...   Jan 10 2015, 17:50
||- - _Pasha   Цитата(x736C @ Jan 10 2015, 20:50) Просто...   Jan 10 2015, 22:15
|- - x736C   Случайно два раза отправилось.   Jan 10 2015, 17:50
- - _Pasha   Что-то не пойму. Попробовал я pythonXY. А там spyd...   Feb 26 2015, 08:09
|- - alexunder   Интересная тема. Обожаю Matlab со всеми его плюшка...   Feb 26 2015, 11:50
|- - syoma   Цитата(alexunder @ Feb 26 2015, 14:50) Ин...   Mar 12 2015, 15:32
|- - alexunder   Цитата(syoma @ Mar 12 2015, 16:32) Если м...   Mar 12 2015, 16:29
- - _Pasha   Это просто песня какая-то... http://manns.github.i...   Mar 11 2015, 11:18
- - _Pasha   кто осилил Spyder под линукс, подскажите, как в ме...   Apr 23 2015, 14:24


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th June 2025 - 02:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01496 секунд с 7
ELECTRONIX ©2004-2016