如何在向量中存储滑块值

时间:2015-06-13 12:45:58

标签: arrays matlab vector slider

我使用Matlab创建GUI。因此,我使用了matlab的指导功能。 我想将滑块值存储在矢量中。我在回调函数中这样做:

for i = 1:10
X(i) = get(handles.slider1,'Value');
end

但是这导致向量存储相同的值10次。我真正想要的是将滑块的最后10个值存储在矢量中。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我建议在启动GUI时创建一个1 x 10零向量,即在GUI的OpeningFcn中:

handles.X = zeros(1,10);
guidata(hObject,handles);        % Update handles variable

然后在滑块的Callback功能中,您始终将向量向右移动并在第一个位置添加新值:

x =  get(handles.slider1,'Value');
handles.X = [x, handles.X(1:end-1)];
guidata(hObject,handles);         % Update handles variable

现在X始终包含滑块值的最后10个值,X(1)是最后一个值,依此类推。

在滑块未移动10次之前,某些值将不正确,即它们只是零。如果这是一个问题,您可以在回调中动态增长X向量。