1

所以我现在正在处理 MatLab GUI 任务。这基本上是一个估计游戏。在每次试验中,用户都会猜测左侧轴上显示的相关性。当他们点击提交时,我的代码会计算他们的估计与实际相关性之间差异的绝对值。到目前为止,一切都很好。

在右侧轴上,我想绘制一条线,每次点击“提交”时都会更新。x 坐标是试验编号,y 坐标是前面提到的绝对差值。我可以通过使用“散点图”或“绘图”使用点而不是线成功地绘制此信息,但是当我尝试将其设为线时,没有出现任何内容,尽管轴似乎确实更新了......以下两个代码如果标记是“。”则工作 或'o'或's'或'x'......实际上是任何标记......但我无法让它连接点......我一直在尝试使用动画线条和drawow但没有也不适合我..

plot(handles.trial, handles.diff(handles.trial),'-.'); hold on; %plot trialwise absolute differences

或者 scatter(handles.trial, handles.diff(handles.trial),'-.'); hold on; %plot trialwise absolute differences


**问题解决了!请参阅下面的解决方案

4

1 回答 1

0

解决方案:将所有相关数据存储在一个矩阵handles.DATA中。为此,在第一次试验之前需要有一些东西,所以在初始化期间我设置handles.DATA = [0 0]然后按下按钮(提交)结束试验,来自该试验的数据被连接到数据矩阵中:handles.DATA = vertcat(handles.DATA, [x y]). 在此之下,我可以做我想做的情节:plot(handles.DATA(:,1), handles.DATA(:,2),'Color','r'

*注意:不要hold on因为那样你就会有相互堆叠的线条。**另外,如果您不指定线条颜色,则每次单击“提交”时线条都会变成不同的颜色,因为这是每次根据更新的信息生成新线条。

于 2017-05-07T17:29:23.013 回答