2017-08-04 164 views
0

如何在matlab中绘制不同颜色的波(由1×N矩阵表示)。可以手动提供特定颜色的范围。在同一图中用不同颜色绘制波

有关预期输出,请参阅下图。

enter image description here

+0

这个问题说MATLAB,但你已经标记了'matplotlib'。他们是不一样的。 'matplotlib'是_Python_的绘图模块。 – DavidG

回答

4

下面是一个简单的选择:

x = linspace(-4*pi,4*pi,10000); % some data 
y = -sin(x); % some data 
N = 4; 
py = reshape(y,[],N); 
px = reshape(x,[],N); 
plot(px,py,'LineWidth',2) 

哪里y是您的载体,并N是要区分件数。请注意,您必须确保y可通过N进行分配,且无余数。

enter image description here

如果你想设置的颜色,你可以用set命令做到这一点:

p = plot(px,py,'LineWidth',2) 
cmap = parula(N); % a set of N colors in RGB matrix 
set(p,{'color'},mat2cell(cmap,ones(N,1),3)) 

,你会得到:

enter image description here

+0

谢谢你的回答! – TechJ

1

这个数字看起来像一个正弦函数,让我们姑且认为它是这个例子。虽然我没有MATLAB在我的面前,现在,我可能会做的是,在m文件脚本:

clear all; clc; 
functionToPlot = [sin(0 : (pi/2) : (8*pi))]; %This spacing will look very sharp and pointy, so I'd recommend using >>linspace like shown in other answers. 
yAxisVector = [-1 : 1 : 1]; 
for n = 1 : length(functionToPlot) 
    if rem(functionToPlot(1,n),2) <= pi 
     plot(functionToPlot(1,n),yAxisVector,'r') 
     hold on 
    elseif rem(functionToPlot(1,n),4) <= pi 
     plot(functionToPlot(1,n),yAxisVector,'g') 
     hold on 
    elseif rem(functionToPlot(1,n),6) <= pi 
     plot(functionToPlot(1,n),yAxisVector,'y') 
     hold on 
    elseif rem(functionToPlot(1,n),8) <= pi 
     plot(functionToPlot(1,n),yAxisVector,'c') 
     hold on 
    end 
end 

此代码应该给你,你在你的问题中描绘的功能。你有没有测试过代码?你测试了什么代码? This link显示了一种使用RGB值的替代方法,如果您愿意的话。祝你的项目好运!

+1

谢谢你的回答! – TechJ

相关问题