Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как сравнить два вектора в SPICE?
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
cms
Написал SPICE-модель, и было бы интересно в спайсе сразу построить вектор пересечений выходной кривой с другой кривой. Посмотрел на встроенные функции работы с векторами и не нашел там ничего подходящего.

А так опреация простейшая: сравнить два вектора, и из совпадающих элементов построить третий. Или для этого надо экспортировать результаты в MATLAB?
qwesystemc
Во-первых, там есть обыкновенные циклы (while, repeat, foreach, ...), так что можно сделать все что угодно. А может и эта функция поможет:
man nutmeg:
diff plot1 plot2 [vec ...]
Compare all the vectors in the specified plots, or only the named
vectors if any are given. There are different vectors in the two
plots, or any values in the vectors differ significantly the dif-
ference is reported. The variables abstol, reltol, and vntol are
used to determine what "significantly" means (see the SPICE3 User's
Manual).
cms
Что-то не получается никак циклами. А diff - оч. ограниченная функция, позволяющая только находить отличия кривых на двух графиках...

Цитата(qwesystemc @ Jun 4 2005, 01:00)
Во-первых, там есть обыкновенные циклы (while, repeat, foreach, ...), так что можно сделать все что угодно. А может и эта функция поможет:
man nutmeg:
diff plot1 plot2 [vec ...]
        Compare all the vectors in the specified plots, or only  the  named
        vectors  if  any  are given. There are different vectors in the two
        plots, or any values in the vectors differ significantly  the  dif-
        ference  is  reported.  The variables abstol, reltol, and vntol are
        used to determine what "significantly" means (see the SPICE3 User's
        Manual).
*
qwesystemc
Как это может не получаться циклами то -- циклами можно написать совершенно любую программу. Ну например (не тестировал),

let i = 0
repeat length(a)
if(abs(a[i] - b[i]) le 0.001)
r[i] = a[i]
end
i = i + 1
end

Если не получилось, то напиши хотя бы что пробовал и какие сообщения об ошибках получил.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.