而如果循环使用Nexttile或次要情节?策划的问题

5视图(30天)
你好我想要运行一个MATLAB代码为50年的水位会产生情节。我想让代码产生10年的水位阴谋一个十年1971年到1980年,然后另一个十年,1981 - 1990年的另一个窗口等等直到2020年的一个例子如下所示的窗口
我可以运行一个版本的脚本通过改变开始年每次生产每个窗户的阴谋,但自从我是一个新手用户的MATLAB的我想潜水比较如果循环,这样脚本自动运行
初始水位从excel文件附加数据提取和数据处理m文件脚本。绘图的数据处理是数据。处理脚本如下所示的一部分但当我运行代码产生indivdual情节50年来每一个在一个窗口。我想让脚本运行,这样就产生一个窗口第一个十块十年,所以一个另一个窗口。今年开始是1971到2020。
我需要一些帮助,如果循环或任何建议的修改,让它运行如上所述。
的代码如下:
关闭所有%关闭已存在的数据
n = 0;%不需要改变
年= 1971;%表示循环的开始的一年
plotcount = 0%不需要更改用于表示数量的情节
跨度= 5 [2]%代表的行和列图窗口前2行5列
(n < = 50)
%的指定你想要多少年之后的情节开始
WinterStartdate = datetime (“1971-01-01”)+ calyears (n);% %改变年datetime所需的开始
SummerStartdate = datetime (“1971-07-01”)+ calyears (n);% %改变年datetime所需的开始
% %探索文件:输入所需的范围只有Winterstartdat和今年夏天开始日期年必须改变也在标题必须改变
tdays = (0:60);%代表60天从开始到结束日期
Maxwaterlevel = max (water_level_15330);%发现马克斯waterlevel所有
WinterStartdatelocation =找到(日期= = (WinterStartdate), 1);%发现的位置开始日期的日期表
U = isempty (WinterStartdatelocation);
U = = 1%检查数组中是否存在第一如果不是第一天增加一天
WinterStartdate = WinterStartdate + caldays (1);
WinterStartdatelocation =找到(日期= = (WinterStartdate), 1);
U = isempty (WinterStartdatelocation);
结束
WinterStartdatelocation =找到(日期= = (WinterStartdate));
WinterEnddatelocation = WinterStartdatelocation + 60;%发现的位置结束日期的日期表
SummerStartdatelocation =找到(日期= = (SummerStartdate));%发现的位置开始日期的日期表
K = isempty (SummerStartdatelocation);
K = = 1%检查数组中是否存在第一如果不是第一天增加一天
SummerStartdate = SummerStartdate + caldays (1);
SummerStartdatelocation =找到(日期= = (SummerStartdate));
K = isempty (SummerStartdatelocation);
结束
SummerEnddatelocation = SummerStartdatelocation + 60;%发现的位置结束日期的日期表
Winterwaterlevels = water_level_15330 (WinterStartdatelocation: WinterEnddatelocation);%为冬季水位创建数组,从开始日期到结束日期
Summerwaterlevels = water_level_15330 (SummerStartdatelocation: SummerEnddatelocation);%创建一个数组与夏季水位从开始日期到结束日期
WinterEnddate = WinterStartdate + caldays (60);%计算日期后60天
SummerEnddate = SummerStartdate + caldays (60);%计算日期后60天
Maxwinterlevel = max (Winterwaterlevels);
Maxsummerlevel = max (Summerwaterlevels);
如果plotcount < 10%这个for循环将情节图的第一个十年
nexttile(跨度)
情节(tdays Winterwaterlevels、线宽= 1 =标志“广场”线型=”——“MarkerSize = 5,颜色=“r”);%情节60天v / s冬季水位
持有;
情节(tdays Summerwaterlevels、线宽= 1 =标志“^”MarkerSize = 5,线型=“-”颜色=“b”);
持有;
标题(num2str(年),字形大小= 18);%今年今年变化进行了分析
包含(“不。天从1 ^{圣}的月);
ylabel (“意思是水位(m)”);
ylim (2.5 [0]);%右边的值代表了y轴上最大轴值
xticks (0:5:60)% 1日人数下限,中间数字增量的蜱虫,最后一个数字代表上限x轴
yticks (0:0.5:2.5)% 1日人数下限,中间数字增量的蜱虫,最后一个数字代表上限y轴
网格;
n = n + 1;
年=一年+ 1
plotcount = plotcount + 1
其他的
如果plotcount > = 10%这个for循环将情节在一个图的第二个十年
nexttile(跨度)
情节(tdays Winterwaterlevels、线宽= 1 =标志“广场”线型=”——“MarkerSize = 5,颜色=“r”);%情节60天v / s冬季水位
持有;
情节(tdays Summerwaterlevels、线宽= 1 =标志“^”MarkerSize = 5,线型=“-”颜色=“b”);
持有;
标题(num2str(年),字形大小= 18);%今年今年变化进行了分析
包含(“不。天从1 ^{圣}的月);
ylabel (“意思是水位(m)”);
ylim (2.5 [0]);%右边的值代表了y轴上最大轴值
xticks (0:5:60)% 1日人数下限,中间数字增量的蜱虫,最后一个数字代表上限x轴
yticks (0:0.5:2.5)% 1日人数下限,中间数字增量的蜱虫,最后一个数字代表上限y轴
网格;
n = n + 1;
年=一年+ 1
plotcount = plotcount + 1
结束
结束
结束
1评论
dpb
dpb 2022年11月4日
数据都在一个文件吗?如果是这样,时间表和一个逻辑分组变量技巧相当easilty似乎应该这样做。
像往常一样,这将是 从git-go容易编写干净代码的定义输入数据比现有试图清理…
最好是把数据文件(如果太大,就节省10%左右的数据)或附加.mat文件与数据数组…

登录置评。

接受的答案

沃斯
沃斯 2022年11月4日
编辑:沃斯 2022年11月4日
关闭所有%关闭已存在的数据
start_year = 1971;%表示循环的开始的一年
跨度= 5 [2]%代表的行和列图窗口前2行5列
tdays = 0:60;%代表60天从开始到结束日期
Maxwaterlevel = max (water_level_15330);%发现马克斯waterlevel所有
n = 0:49
%的指定你想要多少年之后的情节开始
WinterStartdate = datetime (“1971-01-01”)+ calyears (n);% %改变年datetime所需的开始
SummerStartdate = datetime (“1971-07-01”)+ calyears (n);% %改变年datetime所需的开始
% %探索文件:输入所需的范围只有Winterstartdat和今年夏天开始日期年必须改变也在标题必须改变
WinterStartdatelocation =找到(日期= = (WinterStartdate), 1);%发现的位置开始日期的日期表
isempty (WinterStartdatelocation)%检查数组中是否存在第一如果不是第一天增加一天
WinterStartdate = WinterStartdate + caldays (1);
WinterStartdatelocation =找到(日期= = (WinterStartdate), 1);
结束
WinterStartdatelocation =找到(日期= = (WinterStartdate));
WinterEnddatelocation = WinterStartdatelocation + 60;%发现的位置结束日期的日期表
SummerStartdatelocation =找到(日期= = (SummerStartdate));%发现的位置开始日期的日期表
isempty (SummerStartdatelocation)%检查数组中是否存在第一如果不是第一天增加一天
SummerStartdate = SummerStartdate + caldays (1);
SummerStartdatelocation =找到(日期= = (SummerStartdate));
结束
SummerEnddatelocation = SummerStartdatelocation + 60;%发现的位置结束日期的日期表
Winterwaterlevels = water_level_15330 (WinterStartdatelocation: WinterEnddatelocation);%为冬季水位创建数组,从开始日期到结束日期
Summerwaterlevels = water_level_15330 (SummerStartdatelocation: SummerEnddatelocation);%创建一个数组与夏季水位从开始日期到结束日期
WinterEnddate = WinterStartdate + caldays (60);%计算日期后60天
SummerEnddate = SummerStartdate + caldays (60);%计算日期后60天
Maxwinterlevel = max (Winterwaterlevels);
Maxsummerlevel = max (Summerwaterlevels);
如果国防部(n, 10) = = 0
图();
结束
nexttile(跨度)
情节(tdays Winterwaterlevels、线宽= 1 =标志“广场”线型=”——“MarkerSize = 5,颜色=“r”);%情节60天v / s冬季水位
持有;
情节(tdays Summerwaterlevels、线宽= 1 =标志“^”MarkerSize = 5,线型=“-”颜色=“b”);
持有;
标题(num2str (start_year + n),字形大小= 18);%今年今年变化进行了分析
包含(“不。天从1 ^{圣}的月);
ylabel (“意思是水位(m)”);
ylim (2.5 [0]);%右边的值代表了y轴上最大轴值
xticks (0:5:60)% 1日人数下限,中间数字增量的蜱虫,最后一个数字代表上限x轴
yticks (0:0.5:2.5)% 1日人数下限,中间数字增量的蜱虫,最后一个数字代表上限y轴
网格;
结束

更多的答案(0)

类别

找到更多的在指定目标图形输出帮助中心文件交换

标签

s manbetx 845


释放

R2022b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!