Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MatlabGUI轴句柄中绘制3个向量_Matlab_Plot - Fatal编程技术网

在MatlabGUI轴句柄中绘制3个向量

在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');

我试图在一个串行对象的回调中将3个向量绘制到MatlabGUI上。 我想在轴手柄上绘制,但问题是它只绘制最后一个向量

    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个。比较