2011-02-24 12 views
0

私はこの状況があり、私は適切な方法でそれを解決することはできません。ベクトルをプロットするmatlab

  • ベクトル1 = [NAME1 NAME2 NAME3 NAME4 ... nameN](文字列名)
  • ベクトル2 = [時刻1時間2 TIME3 TIME4](ダブル)
  • :私は3つのベクトルを持っている :問題はこれですVector3は= [時刻1:NAME4 TIME2:NAME1 TIME3:NAME1 TIME4:NAME1](ダブル:String)を

私はMathWorks社のMATLABで次の操作を実行したい:名前とY軸のベクトル1を入れ

の1- - 私はこのコードでそれを行うことができます:

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

2-我々はX & Yの両方の軸を持っていたら、私はしたいタイムラインに

3-シミュレートする、とのX軸方向にベクトル2を入れて3ベクターを使ってグラフ内の点をプロットする

たとえば、3 Vectorには、タイムスタンプが含まれていて、各タイムスタンプには名前Nが実行されているため、3ベクトルを入力としてグラフにプロットします。

任意の提案は?事前

のおかげで、それを行うには

答えて

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]) 
+0

私はこの行にエラーが発生します。 [〜、YDATA] =内容isMember(データ(:、2)、名); 表現や文が間違っている可能性があります。(、{、または[ –

+0

@Martin Solac:古いバージョンのMatlabで作業していると思いますが、 '〜'のノーテーションはサポートされていません。コード。 – Jonas

0

一つの方法は、(ベクトル2、のVector3)

プロットを使用し、その後のVector3

  • における値のみを入れ

    1. ですまた、vector1の名前を "scale"、vector2を "time"、vector3を "values"に変更することをお勧めします。それはあなたが何を使っているかについてあなたの心をはっきりさせる助けとなるはずです。

  • 関連する問題