1

Так что я новичок в MATLAB, и это может быть очень глупым сомнением, но при генерации базовых сигналов для обработки сигналов у меня есть это:

t = (-1:0,01:1)';

импульс = t == 0 ; участок (т, импульс)

(от: https://www.mathworks.com/help/signal/gs/impulse-step-and-ramp-functions.html)

Так что я знаю, что это построит единичный импульс, но я не вижу, что там делает t == 0. В момент времени = 0 он будет равен 1, как и ожидалось, но почему? Более конкретно, может кто-нибудь объяснить мне, что "==" говорит MATLAB делать?

огромное спасибо

1 ответ1

0

В большинстве языков программирования вы можете взять выражение, подходящее для оператора "if", и использовать его в любом вычислении.

В большинстве случаев, когда выражение имеет значение "ИСТИНА", оно будет давать значение "1" в качестве результата.

Следовательно, «t == 0» оценивается как "1", когда значение "t" равно нулю (0)... в любых других случаях результат равен нулю.

Это позволяет писать код без выражений "if", которые ведут себя так же, как и код, используя один или несколько операторов if.

например

$ python
Python 2.7.12 (default, Nov 12 2018, 14:36:49) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> for x in xrange(0,20):
...  print (x!=10)*x,
... 
0 1 2 3 4 5 6 7 8 9 0 11 12 13 14 15 16 17 18 19
>>> for x in xrange(0,20):
...  if x!=10:
...   print x,
...  else:
...   print 0,
... 
0 1 2 3 4 5 6 7 8 9 0 11 12 13 14 15 16 17 18 19
>>> quit()
$ 

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .