|
|
|
Помогите перевести с [Python] на [Java]
|
|||
|---|---|---|---|
|
#18+
Здравствуйте всем! Уважаемые помогите, пожалуйста, перевести код с питона на яву. В коде реализована компактная модель нейрона Ижикевича Там используется Нумпу) Так что чорт его знает можно ли вообще воспроизвести это.. Сей код тута: Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. Заранее благодарю! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2015, 20:29 |
|
||
|
Помогите перевести с [Python] на [Java]
|
|||
|---|---|---|---|
|
#18+
Sergeyyy, А что конкретно вам не понятно? Два объекта. 1) IzhikevichNeuron - для "хранения данных" 2) IzhikevichSim для расчета Внешних объектов вроде бы не используется. Аккуратно перепишите метод integrate из класса IzhikevichSim Вроде бы все... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2015, 07:43 |
|
||
|
Помогите перевести с [Python] на [Java]
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, спасибо большое, да не очень знаком ни с питоном, с jav,ой знаком чуть более, но вот классы эти, эх..Пока изучаю их) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2015, 22:26 |
|
||
|
Помогите перевести с [Python] на [Java]
|
|||
|---|---|---|---|
|
#18+
Sergeyyymad_nazgul, спасибо большое, да не очень знаком ни с питоном, с jav,ой знаком чуть более, но вот классы эти, эх..Пока изучаю их) Я его вообще не знаю. ;-) Но по коду более-менее понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2015, 09:11 |
|
||
|
Помогите перевести с [Python] на [Java]
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, Какая то чушь получается: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2015, 22:54 |
|
||
|
Помогите перевести с [Python] на [Java]
|
|||
|---|---|---|---|
|
#18+
Вместо возведения в степень в Java надо использовать умножение (если целый показатель) или функции из пакета java.lang.Math.*. И было-бы продуктивнее видеть лог компилляции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2015, 00:38 |
|
||
|
Помогите перевести с [Python] на [Java]
|
|||
|---|---|---|---|
|
#18+
mayton, еще подправил некоторые очевидные ошибки, вот улучшенная версия: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. А вот пишет в основном такие вещи - v cannot be resolved or is not a field, около neuron.v ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2015, 14:59 |
|
||
|
Помогите перевести с [Python] на [Java]
|
|||
|---|---|---|---|
|
#18+
Sergeyyy, просто у тебя переменная neuron имеет тип Object , а в нем поля v нет, о чем и говорит компилятор. Исправь в классе IzhikevichSim : Код: java 1. Соответственно в конструкторе будет: Код: java 1. Вообще в Java, как и в ее предках C++ и Pascal/Delphi, используется статическая типизация. Т.е. у каждой переменной должен указываться тип, и допустимо использовать только те операции, методы и поля, которые определены для этого типа. Например, есть класс Point , определенный так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. И есть класс Point3D , который унаследован от него: Код: java 1. 2. 3. 4. 5. 6. 7. 8. Тогда следующий код приведет к ошибке компиляции: Код: java 1. 2. Потому что у переменной p тип Point , а в нем поля z нет (хотя у созданного объекта это поле есть). У тебя аналогично, в классе Object нет поля v , и писать neuron.v недопустимо. Еще пример: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. Вызовет ошибку компиляции, потому что в классе Object не определена операция умножения. А если вместо Object указать Integer , то все заработает. В Python, как и в большинстве скриптовых языков, используется динамическая утиная типизация, т.е. тип для переменной не указывается, а наличие полей, методов и операций проверяется у объекта во время выполнения. Т.е. если переменная neuron содержит объект, у которого есть поле v , то можно писать neuron.v . В этом плане интересен подход C#, где используется тоже статическая типизация, но можно делать Python'овские вещи с помощью ключевого слова dynamic . В Java, увы, такой возможности не предусмотрели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2015, 19:08 |
|
||
|
Помогите перевести с [Python] на [Java]
|
|||
|---|---|---|---|
|
#18+
И еще пару замечаний. 1. Классы IzhikevichNeuron и IzhikevichSim лучше поместить в разные .java-файлы. 2. Здесь Код: python 1. Используются так называемые "лямбда-выражения" или анонимные функции. В Java 8 можно написать: Код: java 1. Предварительно нужно определить функциональный интерфейс: Код: java 1. 2. 3. 4. И указать для поля du тип Lambda4 : Код: java 1. В Python анонимная функция вызывается как обычная, т.е. self.du(a, b, v, u) , в Java нужно вызывать определенный в функциональном интерфейсе метод, в данном случае invoke , т.е. this.du.invoke(a, b, v, u) . Разумеется, вместо Lamba4 и invoke можно использовать любые имена. В старых версиях Java то же самое делалось с помощью анонимных классов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2015, 19:43 |
|
||
|
Помогите перевести с [Python] на [Java]
|
|||
|---|---|---|---|
|
#18+
Здесь Код: python 1. 2. создаются массивы, функция arange создает массив с элементами от 0 до t + dt , где каждый больше предыдущего на dt (т.е. 0, dt , dt + dt , dt + dt + dt , ..., t + dt ), а функция zeros создает массив из len(t) элементов и заполняет его нулями. В Java это можно сделать различными способами. Например, в первом случае можно создать список ArrayList<Integer> , поместить (метод add ) в него в цикле элементы от 0 до t + dt , а потом преобразовать (метод toArray ) в массив типа Integer[] . Во втором случае - просто создать массив и в цикле присвоить всем его элементам значение 0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2015, 20:14 |
|
||
|
Помогите перевести с [Python] на [Java]
|
|||
|---|---|---|---|
|
#18+
Семён Антонович Сосницкий, Огромное огромное вам спасибо!) Прям выручили!) Спасибо за дополнительные разъяснения) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2015, 20:49 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38950645&tid=2123384]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
86ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 401ms |

| 0 / 0 |
