2016-06-26 9 views
0

私は次のように行方向に編成されているマトリックスを有する:私は23列を有する行列の各列のMatlabで線をプロットするにはどうすればよいですか?

Row 1: Year (e.g., 2004) 
Row 2: Month (e.g., 6) 
Row 3: Discharge (e.g., 90 m3/s) 

は(3x23マトリクス)合計します。 1年に関連付けられたすべての列をプロットしたい(たとえば、1〜4列目は2004年に収集されたデータに対応する)。特定の年のすべての列を見つけてプロットするにはどうすればよいですか?最終的には、毎年のデータを(複数の列に渡って)同じプロット上の行としてプロットしたいと考えています(おそらく、forループとして最もうまくいくでしょうか?)。

または、1行目と2行目(年と月)をMatlab時間に結合して、そのように毎年放電をプロットする方が良いですか?もしそうなら、私はどのようにこれをMatlabに書きますか?次のように

データとその組織のサンプルは次のとおりです。

2004 2004 2004 2004 2005 2005 
6  7  8  9  5  6 
90.97 591.88 515.09 1.83 1.41 209.07 

ありがとうございました!この例では

答えて

1

%%、私は放電に対する月のプロット - 必要

として変更%%あなたのサンプルデータ

a = [2004,2004,2004,2004,2005,2005; 
6,7,8,9,5,6; 
90.97,591.88,515.09,1.83,1.41,209.07]; 

%%年ゲット

years_represented = unique(a(1,:)); 

を表す%%表記年数を取得する

num_of_years = length(years_represented); 

%% loopを使用して、各年とプロットのデータを取得します(必要に応じてカスタマイズ)。

for idx = 1:num_of_years 

curr_year = years_represented(idx); % current year 

curr_year_idx = a(1,:) == curr_year; % columns of current year 

curr_year_data = a(:,curr_year_idx); % current year data 

plot(curr_year_data(2,:),curr_year_data(3,:)); % plot current year data 

hold on 

end 

xlabel('Month')   % X-axis label 
ylabel('Discharge')  % Y-axis label 
hold off 
+0

これは完全に機能しました。ありがとうございます! – user3052817

関連する問題