MATLAB奇怪的输出

时间:2010-06-25 12:50:27

标签: matlab variables

我想知道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 个答案:

答案 0 :(得分:1)

尝试从fixdur21=[]开始。

如果在你的其余代码发布后不起作用! - 你必须在其他地方改变它

变量名称可以包含您喜欢的任何数字(开头除外) 虽然如果你有几个编号的变量,你可能最好使用列表或单元格数组(所以你可以迭代它们)。

此外,您的整个代码简化为:

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

如果fixdur总是200个项目,你可以省略1:200

如果你不需要,请不要迭代。