如何在向量中存储滑块值
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
向量。
我正在使用 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
向量。