|
scilab vs python, что выбрать? |
|
|
|
Dec 25 2014, 09:51
|
Профессионал
    
Группа: Свой
Сообщений: 1 143
Регистрация: 22-04-08
Из: г. Екатеринбург
Пользователь №: 36 992

|
добрый день, коллеги.
ранее долгое время применял матлаб для создания m файлов, простенького gui, работы с com портами, файлами.
теперь матлаб для меня закрыт, встал вопрос использовать "бесплатное" ПО, выбираю между scilab и python. задачи по обработке сигналов, алгоритмы в основном свои, так что интересует в первую очередь удобство визуализации результатов, возможность создания всевозможных фильтров, создание gui b работа с железяками. посмотрел примеры и того и другого вроде примерно на одном уровне, но может быть это только на первый взгляд?
подскажите, пожалуйста у которого из них больше удобств, функциональнее библиотеки, в общем надо определиться, на что переходить.
спасибо.
|
|
|
|
|
 |
Ответов
|
Dec 30 2014, 04:45
|

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

|
Цитата(amaora @ Dec 29 2014, 21:16)  Интереснее было бы компилировать код в алгебраической записи (на matlab языке или ином) в оптимальный код на C. Так, чтобы использовались известные свойства матриц. Например разреженность может заметно сократить количество операций при умножении. Матрицы могут быть симметричными, диагональными, ортогональными и т.д. Все это можно использовать при генерации оптимального по быстродействию (или другому критерию) кода. Если матрица диагональная, то ее хранят в векторе  . А такие свойства, как симметрия и эрмитовость, обычно не позволяют ускорить операции сложения, вычитания и умножения, поскольку для этого требуется, чтобы ОБА операнда обладали таким свойством. Что же касается разряженных матриц, то это скорее не алгебраическая проблема, а ... "процессоростроительная", т.к. касается только того, способен ли FPU быстрее выполнять бинарные операции, если один из операндов нулевой. Причем, в электронной реализации (а так же на FPGA) такая проверка операндов на нулёвость не привела бы к замедлению арифметики с прочими числами, поскольку признак нулёвости регистра всегда можно сделать схемотехническим, экстренно отменяющим выполнение операции. Но если процессоростроители этого не предусмотрели, то проверять каждый операнд на нулёвость в программе будет не менее накладно по времени, чем честно умножать на нуль. Тем не менее, я веду речь исключительно об удобстве использования арифметических операторов в матрично-векторных выражениях и ни о чем другом, т.к. всё другое традиционно производится через явные вызовы функций, а не средствами операторов. И если уж у вас обе матрицы настолько заковыристые, что их произведение через ухо вычислять быстрее, то и не пользуйтесь тогда операторами, а вызывайте для них функцию, которая вычисляет результат через ухо. В конце концов, языки высокого уровня родились вместе с Фортраном, когда стало допустимо записывать арифметические операции посредством четырех операторов (+,-,*,/), используя скобки, и именно это вызывало бум! Потому как с помощью явного вызова функций можно было бы припеваючи продолжать жить на ассемблере. Отсюда и вопрос мной поставлен так: допускает ли механизм определения операторов языка C++ определить их для матриц и векторов таким образом, чтобы три операции (+,-,*) над ними имели естественно-арифметический вид записи? Если да, то почему это до сих пор не сделано производителями библиотек линейной алгебры? А если где-то уже сделано, то где именно?
|
|
|
|
|
Dec 30 2014, 06:00
|

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

|
Цитата(shf_05 @ Dec 30 2014, 08:40)  Нет, этого я не видела. Но даже и с вашей подачи не могу найти в этой статье место, где бы автор производил умножение C=A*B в операторном виде. Слишком ж там кода много вывалено, что пример, если он и был приведен, то там утонул. Тогда как операции типа A+=B A-=B на реализацию которых упирает автор статьи, очевидно реализуются без проблем, поскольку они бинарны, а не тернарны. Тогда как организовать бинарным оператором операцию умножения в общем случае невозможно, т.к. там продукт может иметь иную размерность, чем каждый из операндов.
|
|
|
|
|
Dec 30 2014, 07:05
|

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

|
Цитата(shf_05 @ Dec 30 2014, 09:34)  я так понимаю, на примере того, как сделал автор, можно перегрузить оператор * , чтобы он умножал какие угодно матрицы с предпроверкой их размерностей. Я в собственной реализации перегружала оператор "=", нагружая выполнение операции именно на него, поскольку только в этом операторе известен адрес приемника результата. Тогда как операторы действий "+", "-", "*" возвращают у меня всего лишь малую структуру с адресами обоих операндов, флагами их транспонирования и типом операции (т.е. два адреса и один байт с флагами). Вот поэтому мне и интересны чужие реализации "прикручивания". Тем более что реализация в лоб сопровождается дополнительным копированием результирующей матрицы, возвращаемой оператором, в приемник на этапе присваивания этого результата. А при больших матрицах эта довольно накладно, т.к. помимо копирования включает в себя деаллокацию промежуточного объекта, не говоря уже о необходимости его предшествующей аллокации. Т.е. результат операции при реализации в лоб переносится через промежуточный объект размером во всю матрицу, потому его при каждой операции приходится аллокировать, деаллокировать и дважды копировать его содержимое. Тогда как на этапе присваивания ("=") уже могут быть известны все три адреса, чтобы можно было запустить на них стандартную библиотечную функцию.
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|