我如何在Matlab中为矩阵中的每一列画一条直线



我有一个按行组织的矩阵:

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

相关内容

  • 没有找到相关文章

最新更新