scilab и я. Кто то из нас глючит?

Софт под Linux, разные программы, но только связанные с Linux

Модератор: /dev/random

Аватара пользователя
jojahti
Сообщения: 310

scilab и я. Кто то из нас глючит?

Сообщение jojahti »

Вообщем походу не совсем понятно не работают самопальные функции со списками.
str1=[2,5]; - берём список из двух элементов
deff('q=f1(x)','q=1/x') - делаем функцию 1/x
-------------------------
Ну и вот что выходит, но это совсем не правильные ответы!!??0_0 :angry:
-->f1(str1)
ans =
0.0689655
0.1724138


Почему за что не возьмусь, так с ним происходит какая то хрень!? :WALL:
Спасибо сказали:
Аватара пользователя
Minton
Сообщения: 1588
Статус: openSUSE Localization Team
ОС: openSUSE Tumbleweed x86-64

Re: scilab и я. Кто то из нас глючит?

Сообщение Minton »

Всё правильно: вы ищете такой столбец, умножив на который строку (2,5) вы получите единицу. Проверяем: 2*0,0689655+5*0,1724138=1 (по крайней мере, так утверждает мой калькулятор, не доверять которому у меня нет оснований :) )
А "какая-то хрень" будет происходить до тех пор, пока вы не осознаете отличие списка элементов от числового вектора ;)
Русский раздел на forums.opensuse.org :)

"Настоящие мужчины используют поиск" ©Goodvin
Спасибо сказали:
Аватара пользователя
jojahti
Сообщения: 310

Re: scilab и я. Кто то из нас глючит?

Сообщение jojahti »

Нет, Дракончик, погоди, я нефига не понял!!

Почему это я не делю 1 на каждый из элементов массива!!? Откуда взялись поиски столбца, вектора??

вроде у меня список:
Для создания списка в Scilab необходимо указать его имя и далее, в квадратных скобках, перечислить элементы списка, разделяя их символами «,» или «;»

и вроде операция должна быть над каждым элементом:
Если указать имя списка в качестве аргумента математической функции или произвести над списком математическую операцию, то результатом ее действия станет список той же размерности, что и исходный, но его элементами будут результаты действия функции или операции на каждый из элементов исходного списка.
Спасибо сказали:
Аватара пользователя
Фантом
Сообщения: 463
ОС: openSUSE

Re: scilab и я. Кто то из нас глючит?

Сообщение Фантом »

jojahti писал(а):
01.02.2010 00:31
и вроде операция должна быть над каждым элементом:
Если указать имя списка в качестве аргумента математической функции или произвести над списком математическую операцию, то результатом ее действия станет список той же размерности, что и исходный, но его элементами будут результаты действия функции или операции на каждый из элементов исходного списка.

За давностию лет подзабыл синтаксис MatLab'а (и, соответственно, SciLab'а), но вроде бы для поэлементных операций надо писать так: q=1./x, иначе получится то, что уже описал Minton
Спасибо сказали:
Аватара пользователя
jojahti
Сообщения: 310

Re: scilab и я. Кто то из нас глючит?

Сообщение jojahti »

Нее, так такая же ерунда.
Спасибо сказали:
Аватара пользователя
Minton
Сообщения: 1588
Статус: openSUSE Localization Team
ОС: openSUSE Tumbleweed x86-64

Re: scilab и я. Кто то из нас глючит?

Сообщение Minton »

А вы ещё элементы списка через точку с запятой укажите...
Русский раздел на forums.opensuse.org :)

"Настоящие мужчины используют поиск" ©Goodvin
Спасибо сказали:
Аватара пользователя
jojahti
Сообщения: 310

Re: scilab и я. Кто то из нас глючит?

Сообщение jojahti »

Minton Зачем? И будет у меня две строки. Всё что в голову приходило я перепробовал. Minton объясни плиз по человечески. :mellow:
Спасибо сказали:
Аватара пользователя
deadhead
Сообщения: 1913
Статус: zzz..z

Re: scilab и я. Кто то из нас глючит?

Сообщение deadhead »

.* поэлементный способ умножения
.\ поэлементный способ левого деления
./ поэлементный способ правого деления
.^ поэлементный способ возведения в степень


Попробуйте не со списком, а с вектором.

P.S. А в интерактивной оболочке без функции тоже самое? Попробуйте указывать не скляр, а вектор единиц...
[x] close
Спасибо сказали:
Аватара пользователя
jojahti
Сообщения: 310

Re: scilab и я. Кто то из нас глючит?

Сообщение jojahti »

Юппппии!! Так вон оно что!!!

Ага, задом наперёд работает.
deff('q=f1(x)','q=x.\1')

А по человечески чего она не работает?

deff('q=f1(x)','q=1./x')

Выдаёт бред.


P.S. А, просветление. Надо цифорку от точечки отскобировать. ;)
Спасибо сказали: