簡體   English   中英

如何在Matlab中為矩陣中的每一列繪制一條線?

[英]How do I plot a line in Matlab for every column in a matrix?

我有一個按行組織的矩陣,如下所示:

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

我總共有23列(3x23矩陣)。 我想將與每年關聯的所有列(例如,第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

謝謝!

%%在此示例中,我針對排放量繪制了月份-根據需要進行更改

%%您的樣本數據

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

%%使用循環獲取每年的數據並繪制(按需定制)。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM