我正在使用滑块来增加f
的值。它为我提供了我在GUI上所需的操作 - 但是我的命令窗口显示了这个警告:
警告:冒号运算符在使用时需要整数操作数 索引
事实上,如果我输出f
的值,我发现它不是一个圆整数。
我已尝试fix
,round
,floor
等无济于事。
为什么我仍然收到此警告?
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
答案 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
已添加:为避免这种情况,您应该使用滑块的Min
,Max
和SliderStep
属性,以便Value
返回给您整数值(或至少非常接近整数的值,具有最小的舍入误差)
例如,如果你想要
Slider.Min = 1;
Slider.Max = 79;
然后你应该把
Slider.SliderStep = [1 10] / ( Slider.Max - Slider.Min )
在这种情况下,单击带箭头的滑块按钮会将滑块值增加1,但是当您单击滑块时,滑块值将增加10。
有关更多说明,请参阅SliderStep
uicocntrol
属性的文档。