我想知道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
时,输出似乎正确。这太令人困惑了。
答案 0 :(得分:1)
尝试从fixdur21=[]
开始。
如果在你的其余代码发布后不起作用! - 你必须在其他地方改变它
变量名称可以包含您喜欢的任何数字(开头除外) 虽然如果你有几个编号的变量,你可能最好使用列表或单元格数组(所以你可以迭代它们)。
此外,您的整个代码简化为:
fixdur21 = fixdur((fixdur(1:200) > MIN_FIX_DUR) & (fixdur(1:200) < MAX_FIX_DUR));
fixnb21 = length(fixdur21);
如果fixdur总是200个项目,你可以省略1:200
如果你不需要,请不要迭代。