Странный вывод MATLAB - PullRequest
       5

Странный вывод MATLAB

0 голосов
/ 25 июня 2010

Интересно, установил ли matlab ограничение на имя переменной.

fixnb21=0;

for fix=1:200
    if fixdur(fix)>MIN_FIX_DUR && fixdur(fix)<MAX_FIX_DUR
        fixnb21              =fixnb21+1
        fixdur21(fixnb21)    =fixdur(fix) % I wonder if we are not allowed to add 21 at the end of variables or array name
        ...
    end
end

Выход fixnb21 равен 113, что означает, что общее число строк fixdur21 должно составлять 113. Но когда я проверил количество строк fixdur21, это было 1023, что совершенно неправильно. Это происходит только тогда, когда я ставлю число 21 в конце fixdur21. Вывод кажется правильным, когда я не использую число 21. это так запутанно

1 Ответ

1 голос
/ 25 июня 2010

попробуйте начать с fixdur21=[].

, если это не сработает, опубликуйте остальную часть вашего кода!- вы должны изменить его где-то еще

имена переменных могут содержать любые цифры, которые вам нравятся (кроме как в начале), хотя если у вас есть несколько пронумерованных переменных, вам лучше использовать список или массив ячеек (так что выможно перебирать их).

также весь ваш код упрощается до:

fixdur21 = fixdur((fixdur(1:200) > MIN_FIX_DUR) & (fixdur(1:200) < MAX_FIX_DUR));
fixnb21  = length(fixdur21);

и вы можете опустить 1: 200, если fixdur всегда имеет длину 200 элементов

не повторяйте, если не нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...