如何在向量中存储滑块值

How to store slider values in a vector

我正在使用 Matlab 创建 GUI。因此我使用的是matlab的引导功能。 我想将滑块值存储在一个向量中。我在回调函数中这样做:

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

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

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

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

然后在滑块的回调函数中,您总是将向量向右移动一位并在第一位添加新值:

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 向量。