Matlab错误“当用作索引时,冒号运算符需要整数操作数”

时间:2013-12-29 20:07:56

标签: matlab matlab-guide

我正在使用滑块来增加f的值。它为我提供了我在GUI上所需的操作 - 但是我的命令窗口显示了这个警告:

  

警告:冒号运算符在使用时需要整数操作数   索引

事实上,如果我输出f的值,我发现它不是一个圆整数。

我已尝试fixroundfloor等无济于事。

为什么我仍然收到此警告?

f      = get(handles.slider_frames, 'Value');
f      = round(f);
window = 4;

while f > 0
    x = output(:, f:f + window - 1);  % <---- warning points to this line
    x = mean(x,2);

    %... code continues

end

1 个答案:

答案 0 :(得分:1)

确保round(f)为您提供更高的值0 如果round(f) == 0,您最终会从零开始编制索引:

> f=0; f:f + 4 - 1
ans =
 0     1     2     3

> f=1; f:f + 4 - 1
ans =
 1     2     3     4

已添加:为避免这种情况,您应该使用滑块的MinMaxSliderStep属性,以便Value返回给您整数值(或至少非常接近整数的值,具有最小的舍入误差) 例如,如果你想要

Slider.Min = 1;
Slider.Max = 79;

然后你应该把

Slider.SliderStep = [1 10] / ( Slider.Max - Slider.Min )

在这种情况下,单击带箭头的滑块按钮会将滑块值增加1,但是当您单击滑块时,滑块值将增加10。 有关更多说明,请参阅SliderStep uicocntrol属性的文档。