在matlab中绘制矢量图

时间:2011-02-24 10:48:47

标签: matlab graph vector timestamp

我有这种情况,我无法以正确的方式解决它。问题是这样的: 我有3个载体:

  • Vector1 = [name1 name2 name3 name4 ... nameN](字符串名称)
  • Vector2 = [time1 time2 time3 time4](Double)
  • Vector3 = [time1:name4 time2:name1 time3:name1 time4:name1](double:String)

我想在matlab中执行以下操作:

1-将矢量1放在Y轴上,并带有名称          - 我可以用这段代码完成:

   set(gca, 'YTick',1:N, 'YTickLabel',Names(:,1))

2-将Vector 2放在X轴上,以模拟时间线

3-一旦我们同时拥有X轴和Y轴,我想使用3 Vector在图表中绘制点

例如,3 Vector包含secuentially时间戳,并且在每个时间戳中执行nameN,所以我想使用3 vector作为输入在图中绘制一个点。

有任何建议吗?先谢谢

2 个答案:

答案 0 :(得分:1)

您需要将vector3中的名称转换为数字,然后才能调用plot命令。

例如

names = {'a','b','c','d'}; %# use a cell array (curly brackets) for strings
time = [10 20 30 40 50];
data = {10,'d';20,'b';40,'c'}

%# convert data to numeric xData, yData
xData = cell2mat(data(:,1));
[dummy,yData] = ismember(data(:,2),names);

%# plot
plot(xData,yData,'.') %# plot dots
set(gca,'YTick',1:length(names),'YTickLabel',names,'XTick',time)

%# make sure the axes limits aren't too tight
xlim([0,60]),ylim([0,5])

答案 1 :(得分:0)

一种方法是,

  1. 仅将值放在Vector3
  2. 然后使用plot(vector2,vector3)
  3. 我还建议将vector1重命名为“scale”,将vector2重命名为“time”,将vector3重命名为“values”。这应该有助于让你的头脑清楚你正在使用什么等等。希望这会有所帮助。