#matlab #syntax #vector
#matlab #синтаксис #вектор
Вопрос:
У меня есть векторный фильтр, и мне нужно использовать индекс-номер векторного элемента в фильтре. Каким будет синтаксис для INDEXNUMBER
приведенного ниже примера?
myVector(myVector < 0.05*(INDEXNUMBER/(120-INDEXNUMBER)));
Спасибо,
Ответ №1:
Предполагая, что я понимаю, что вы пытаетесь сделать, вы бы просто заменили myVector
на INDEXNUMBER
:
myVector = rand(1,10);
selection = myVector(myVector < 0.05*(myVector/(120-myVector)));
Логическое индексирование (часть внутри самой внешней круглой скобки, вторая строка) просто выполняет логическое сравнение всех элементов MyVector, возвращая вектор равной длины 0
‘s и 1
‘s и выбирая элементы myVector
, которые соответствуют 1
‘s. Если это не то, что вы делаете, просто убедитесь, что ваши размеры работают правильно (размер неравенства левой руки == размер неравенства правой руки == размер выбираемой переменной), и все должно быть хорошо.
Чтобы использовать позицию каждого числа, вы могли бы использовать следующее:
myVector = rand(1,10);
indices = 1:length(myVector);
selection = myVector(myVector < 0.05*(indices/(120-indices)));
Комментарии:
1. Спасибо за ваш ответ. Если я заменю MyVector на INDEXNUMBER, будут ли использоваться значения MyVector или позиция элемента (номер индекса)?
2. Ответ изменен в соответствии с вашим комментарием.