所以我现在正在进行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
**问题解决了! 见下面的解决方案
答案 0 :(得分: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
因为那时你会有相互堆叠的线条。
**如果您没有指定线条颜色,每次点击“#34;提交"”时,该线条将变为不同的颜色。因为每次根据更新的信息生成一条新行。