在MatlabGUI轴句柄中绘制3个向量
我试图在一个串行对象的回调中将3个向量绘制到MatlabGUI上。 我想在轴手柄上绘制,但问题是它只绘制最后一个向量在MatlabGUI轴句柄中绘制3个向量,matlab,plot,Matlab,Plot,我试图在一个串行对象的回调中将3个向量绘制到MatlabGUI上。 我想在轴手柄上绘制,但问题是它只绘制最后一个向量 plot(handles.axes1,sensor1,'r'); plot(handles.axes1,sensor2,'b'); plot(handles.axes1,sensor3,'g'); 我在网上搜索,发现这个问题可以通过按住和按住功能来解决,所以我尝试了这个方法 plot(handles.axes1,sensor1,'r');
plot(handles.axes1,sensor1,'r');
plot(handles.axes1,sensor2,'b');
plot(handles.axes1,sensor3,'g');
我在网上搜索,发现这个问题可以通过按住和按住功能来解决,所以我尝试了这个方法
plot(handles.axes1,sensor1,'r');
hold on ;
plot(handles.axes1,sensor2,'b');
plot(handles.axes1,sensor3,'g');
hold off;
但在这种情况下,会打开一个新图形(不知道为什么),并且再次只绘制最后一个绘图
我累坏了。如果有人知道会是什么问题?
由于向量的长度相同,我们可以简单地将它们组合为矩阵的列,然后绘制矩阵
plot(handles.axes1,[sensor1',sensor2',sensor3'])
但是,这些将具有默认的颜色顺序。如果不指定x值,在plot命令中设置颜色是很棘手的。但是(幸运的是)默认顺序开始:
蓝色,绿色,红色
因此,交换列顺序将使用所需的颜色绘制线条
plot(handles.axes1,[sensor2',sensor3',sensor1'])
(这假设向量是行,如果它们是列,就不要转置它们)我不确定为什么您第一次尝试使用“保持”时不起作用。看起来应该是这样的 但在任何情况下,您都可以在单个命令中获得所需的行为:
plot(handles.axes1,length(sensor1),sensor1,'r',...
length(sensor2),sensor2,'b',...
length(sensor3),sensor3,'g');
这将在plot命令中指定X=长度(传感器_uu)和Y=传感器_u。当您仅为绘图提供Y输入时,它假定X的长度(Y)。但是,您不能通过仅为每条记录道提供Y输入来将多条记录道组合在一个plot命令中,因为它将尝试将输入视为X,Y对。目的是仅根据向量的顺序绘制向量吗?向量长度相同吗?向量长度相同。是的,我们的目标是在同一张图上画出所有3个。比较