Example: MHKiT-MATLAB Wave Module

The following example runs an application of the MHHKiT wave module to 1) generate a capture length matrix, 2) calculate MAEP, and 3) plot the scatter diagrams.

Load NDBC Data

We can use MHKiT to load data downloaded from https://www.ndbc.noaa.gov.
ndbc_data_file = './data/wave/data.txt'
ndbc_data_file = './data/wave/data.txt'
% height
ndbc_data = read_NDBC_file(ndbc_data_file);
Warning: Calling STRUCT on an object prevents the object from hiding its implementation details and should thus be avoided. Use DISP or DISPLAY to see the visible public details of an object. See 'help struct' for more information.
disp(ndbc_data)
spectrum: [47×743 double] frequency: [47×1 double] time: [1×743 datetime]

Compute Wave Metrics

We will now use MHKiT to compute the significant wave height, energy period, and energy flux.
% Compute the enegy periods from the NDBC spectra data
Te = energy_period(ndbc_data);
disp(Te)
7.4587 7.6824 7.4983 7.6762 7.6695 7.4872 7.1609 7.0988 6.4084 6.6875 7.1311 7.9223 8.7329 10.5890 10.7495 11.5639 11.7032 12.7885 13.3933 13.5416 13.6975 13.4058 13.2554 14.0710 14.2076 13.5765 13.5911 13.3964 12.5708 12.8860 12.0561 11.9063 11.4389 11.8633 11.4712 11.1367 11.8808 11.0509 11.3901 11.2406 11.1560 11.1039 11.5390 10.9961 11.1551 11.1352 11.5514 11.7073 11.4691 11.6870 11.6822 11.0037 10.8002 11.0819 10.2768 11.1203 11.0551 11.9920 12.0477 12.0479 12.0368 12.5881 12.5354 13.1829 12.7431 12.6762 12.9947 12.8486 12.8892 12.9858 13.2110 13.2718 13.7024 13.0189 13.9925 13.7476 14.0039 14.1794 13.3190 13.5117 13.5267 12.9721 12.8560 12.9100 13.2160 12.2412 12.5926 12.3947 12.7596 12.7317 12.3590 12.3724 12.6146 11.9904 12.1634 12.3137 11.7800 11.7779 11.0509 10.6469 10.3666 9.9537 10.1165 9.4756 9.6439 9.2433 9.3079 9.2635 9.3129 9.4700 9.0210 8.8087 8.3257 8.0002 8.0392 7.9786 8.1206 8.3533 8.4946 8.4775 8.5920 8.5201 8.5312 8.9364 8.4345 8.8762 8.8705 8.7795 8.9736 8.5927 8.4116 8.5913 9.0705 8.6300 8.8096 8.9834 8.7747 8.9498 9.7479 10.0163 9.6683 9.7870 9.8794 10.3445 10.2322 10.5311 10.2943 10.3859 9.6956 9.5948 9.5831 9.2351 8.8655 9.1065 8.8338 8.7068 8.3943 8.2395 7.9697 7.4015 7.3304 6.8926 6.5768 7.0960 6.9503 7.7322 8.0245 8.1333 8.2798 8.6032 8.3794 8.3359 8.1413 8.1153 8.5248 8.4903 8.3500 8.6347 8.8721 8.6006 9.1193 9.2841 9.1109 8.9841 9.4384 9.8368 9.9946 9.8188 9.5230 9.6355 10.0682 10.1285 10.9016 10.9119 11.6178 11.6538 11.6443 11.7287 11.4225 10.9860 10.6865 11.0830 10.4920 10.5950 10.0258 9.5165 9.2913 8.7879 9.1370 8.7030 9.1986 9.8293 10.4437 10.4220 10.5583 10.1338 10.3477 9.6099 9.8454 9.6518 9.6576 9.6083 9.8903 9.5620 9.7073 10.2459 9.8208 10.1813 10.7860 11.2051 10.4997 10.1718 10.4792 10.0445 10.1969 9.8091 10.1113 9.0996 8.9366 8.4806 8.7080 8.4413 8.6442 9.2861 10.0928 10.5365 12.2502 12.3917 14.6814 13.7813 14.6484 12.6670 13.4769 10.9527 10.7440 9.8825 9.8507 9.0203 9.2295 10.0095 9.0649 9.3440 9.9396 9.4899 10.0669 10.5483 10.7475 10.2973 10.9479 10.0609 10.9283 11.6803 10.8986 11.5621 11.3216 11.0310 11.2943 10.7790 11.1152 10.8964 11.3743 10.4150 10.8328 11.6098 10.4282 11.0568 11.0963 10.6993 10.6091 10.4905 10.7892 10.9495 10.6091 10.1537 10.4253 10.2617 10.5955 10.2535 10.2804 10.2187 10.2592 10.4489 9.9576 10.2596 10.3297 11.0109 10.9485 10.5785 10.8503 11.3122 11.3979 10.9041 10.8663 10.8499 10.7462 11.9093 11.3235 11.9036 11.2670 10.4626 11.2251 10.4741 11.5700 11.1015 11.5630 11.5471 11.6773 11.2460 11.5230 11.9876 11.9342 12.4239 12.2645 13.3297 13.5462 12.8447 13.2558 14.7341 13.9966 13.5790 13.8883 13.1924 13.6952 13.3088 13.7035 13.4101 13.4046 13.7979 13.6026 13.1556 13.5696 13.3890 14.1740 13.9555 13.0981 12.9492 12.0522 11.9314 11.1963 10.8818 9.7844 9.7998 9.7488 9.9537 10.4116 10.4719 10.6263 10.6539 11.2000 11.4463 11.0588 11.4954 11.0325 11.3430 11.1108 11.2107 11.1472 11.2022 10.6727 11.0312 10.6329 10.9528 11.1013 11.0843 11.5453 11.5456 11.9380 12.1611 11.5921 11.7557 11.5419 11.0792 10.4957 10.4138 9.9285 9.8433 9.7195 9.3346 9.2688 9.2008 8.9019 9.0984 8.7751 9.4036 9.1745 9.7571 9.6200 9.3028 10.0438 10.2193 9.7753 10.0111 9.8614 11.0082 11.1374 13.2593 14.7071 15.9187 15.6053 15.4141 15.2556 15.5009 14.2855 14.0296 14.1887 13.9313 14.0420 14.4265 14.6840 14.3376 14.5785 13.3748 13.8405 13.1773 13.3679 13.0239 12.7860 12.6315 12.4391 12.0860 12.1366 12.0763 11.7334 12.5123 12.0178 12.0559 12.0162 12.2678 12.3176 12.2661 12.0164 11.6857 11.2850 11.2888 11.1805 10.8350 11.6088 11.4470 12.3649 11.4390 11.7176 11.7745 11.3721 11.5087 11.8762 11.8205 11.8907 11.5870 11.6881 11.9879 11.2793 11.7343 10.7543 11.5392 11.6172 10.5984 9.9949 10.1294 10.3332 9.4391 8.9503 8.6437 8.8069 8.6597 8.2914 8.5406 8.5918 8.4058 8.3942 8.5633 8.8703 8.9316 8.8931 9.1541 9.3553 10.0927 10.4958 10.9929 11.6249 11.6396 12.1595 11.4452 11.5892 10.9857 12.2263 12.0528 12.1067 11.5787 11.2316 11.6940 11.3726 11.2190 12.1616 11.6060 11.0849 11.1024 10.7352 11.0272 11.4502 11.4176 11.4619 11.3208 11.2978 11.1845 11.1688 10.9388 10.5697 10.5755 10.4225 10.2139 10.1083 10.3757 10.0294 10.4177 10.3698 9.7224 9.6763 9.2440 8.3011 8.8114 7.7243 7.4816 7.9739 7.8163 7.9005 7.9923 8.2196 8.4612 8.4067 8.5936 8.5487 8.6929 8.6683 8.7963 9.2602 9.2469 9.5187 9.6558 9.4157 9.7840 10.2024 9.8463 9.4667 9.9722 9.5229 10.0050 9.5498 8.8478 8.9882 9.2656 8.9110 9.1694 9.0145 8.8895 8.8205 8.7432 8.4610 8.6662 8.8386 8.6461 8.8719 8.4279 8.9780 8.2285 8.2252 7.9344 8.3447 8.5432 8.9808 9.1441 9.2321 9.6244 9.4760 9.6424 9.9524 10.4317 11.0913 11.1348 11.5575 11.7498 10.5879 11.3772 11.1150 11.1016 10.4365 10.0988 11.4995 10.7893 10.9920 11.1792 10.1690 9.9825 10.4816 10.2022 10.4722 10.1671 10.1153 9.8646 9.6358 9.3977 9.7045 9.7692 9.8618 9.1286 8.8781 8.2247 8.4410 8.4495 8.1291 8.0667 8.4065 8.5784 8.8692 9.2666 9.4071 9.3802 9.9998 9.7859 9.6355 9.4695 10.0118 9.5036 9.7920 9.6914 9.6073 9.3906 9.6507 9.1708 9.2998 9.3748 9.4978 9.4485 9.1727 9.1942 9.3357 9.7319 8.9871 9.9622 9.3888 9.8452 9.6260 9.1900 9.0100 9.4933 8.9395 9.3121 9.0677 8.7684 8.4802 8.3933 8.6319 8.4245 8.0898 8.5843 8.7058 8.6851 9.1779 9.3463 9.6994 9.5063 9.1794 9.1257 9.3531 9.4482 9.5668 8.8733 9.1741 9.4495 9.1522 9.2217 9.8963 9.4235 8.7623 8.6926 8.4383 8.5360 8.4692 8.3566 8.6964 8.3908 8.3627 8.5758 8.2837 8.6967 8.8499 8.7552 9.5270 9.3977 9.7389 10.1794 10.6852 10.5808 10.8269 11.5635 11.2191 11.1879 11.1134 11.0241 11.4430 11.2864 11.6048 11.3284 11.3650 11.4166 10.8819 11.5452 11.3061 10.7584 10.8899 11.1730 10.8418 10.6172 10.0516 10.4615 9.9019 10.3038 10.1432 10.3983 9.9676 10.2270 10.1005 10.6975 10.3857
% Compute the significant wave height from the NDBC spectra data
Hm0 = significant_wave_height(ndbc_data);
disp(Hm0)
0.9396 1.0014 0.9248 0.9625 0.9899 0.9077 0.8270 0.8229 0.7579 0.7362 0.6946 0.7164 0.7673 0.7702 0.8136 0.9248 0.9474 1.1393 1.3787 1.4231 1.5012 1.4957 1.6174 1.7519 2.0416 1.4796 1.6752 1.9991 1.5020 1.7231 1.6358 1.6565 1.6547 1.9734 1.8632 1.7776 2.2054 1.5430 1.9860 1.7727 1.8487 1.7260 2.0250 1.6200 1.5547 1.5036 1.5085 1.7589 1.6725 1.7937 1.9764 2.1123 2.0405 2.3157 2.0473 2.0640 1.9839 2.1994 2.4058 2.0717 2.1667 2.2680 2.2764 2.6078 2.4926 2.5988 2.9700 3.0042 2.6976 2.8703 2.4405 2.8508 3.1804 2.8305 3.1774 3.1907 3.2499 3.3094 2.6992 2.6945 2.7209 2.6319 2.5705 2.5706 3.1439 2.5672 2.7081 2.5694 2.5015 2.8454 2.5059 2.4551 2.4244 1.9381 2.0092 2.2060 1.9512 2.2166 2.3636 2.4617 2.5398 2.6243 2.8986 2.6605 2.5757 2.4522 2.2983 2.3380 2.4752 2.2600 2.4119 2.2190 2.2782 2.5502 2.9903 3.4619 3.8930 4.5413 4.7336 4.4827 4.3888 4.0312 3.2138 3.3339 3.2380 3.4653 3.5675 3.2808 3.0203 2.6880 2.7549 2.6141 2.7350 2.4608 2.6083 2.6847 2.6810 2.5798 2.6751 2.9914 2.7162 2.5226 2.5935 2.5383 2.3057 2.1988 2.2022 2.2768 1.9102 2.0003 2.0281 1.8659 2.1962 2.0889 2.0859 2.0293 1.8003 1.6520 1.5328 1.5074 1.5122 1.6275 1.6264 1.9649 2.0779 2.4913 2.7991 3.0571 2.8436 3.0979 3.1247 3.3397 2.9081 2.7212 2.7185 2.9199 2.7788 2.5731 2.7088 2.5546 2.5596 2.3500 2.6993 2.5380 2.7199 2.3787 2.5627 2.5704 2.5463 2.6473 2.5372 2.4765 2.5598 2.6173 2.7928 2.5803 2.6676 2.5439 2.6951 2.8680 2.6665 2.7737 2.7730 2.9129 2.7776 2.5616 2.9048 2.9659 2.8661 2.7903 2.7649 2.5693 2.9884 2.9566 2.7658 2.9898 3.0054 3.1109 3.2135 2.9767 3.1190 2.8828 2.9903 2.6923 2.4122 2.6745 2.4482 2.4559 2.5339 2.7322 2.4901 2.2294 2.3860 2.2318 2.3151 2.2981 2.3302 2.4514 2.2339 2.2911 2.3303 2.2812 2.1878 2.0047 1.9689 2.0710 1.9756 2.1016 2.7210 2.7903 3.3433 3.3201 3.5489 3.4822 4.0694 3.8468 4.1207 4.1879 4.4820 4.4670 3.8855 4.1794 4.3312 4.8175 4.8371 4.7019 5.0924 4.8648 5.0169 4.9169 4.9267 5.4801 5.0492 5.0093 5.0663 4.6756 4.4910 3.8949 4.2245 4.0641 3.9084 3.6448 3.5329 3.6007 3.5437 3.1564 3.5733 3.2202 3.2082 3.1083 2.9923 3.0558 2.7733 2.6398 2.5025 2.4562 2.5147 2.3144 2.4585 2.2641 2.1463 2.2532 2.0081 2.0728 1.8378 2.0693 1.9375 1.8812 2.1027 2.2455 2.0965 2.2350 2.0580 2.2509 2.2238 2.3723 2.3513 2.4213 2.1279 1.8994 2.4605 2.0867 2.4126 2.0783 2.5421 2.6329 2.3426 2.3430 2.4465 2.4162 2.4462 2.4047 2.3089 2.5379 2.5339 2.5897 2.6852 2.8831 2.7263 2.8110 3.0042 3.1829 3.1658 3.6583 3.5881 3.7006 3.7525 3.8500 4.0369 3.7557 3.8103 3.5052 4.1801 3.6509 3.8666 3.4717 2.9257 3.0819 3.0608 3.3843 3.4182 3.9974 4.5028 4.1192 3.9758 3.8940 4.0771 4.0294 3.5758 3.9731 3.6424 3.6749 3.6549 3.5956 3.6391 3.5700 3.5208 3.4967 3.3356 3.3438 3.4564 3.3718 3.5518 3.0569 3.1419 3.2347 3.2058 3.3152 3.1050 3.2335 3.0696 3.0873 2.7897 3.2548 3.2245 3.2142 3.2059 3.4102 3.4267 3.6192 3.8281 3.9842 4.3129 4.9459 4.9671 5.8257 5.9464 5.7593 5.4849 6.2759 5.4924 5.2934 5.1958 5.4249 5.5946 7.4323 7.8536 9.8264 10.3109 9.3151 10.3829 8.6308 7.4778 7.3413 8.1502 7.7282 7.9501 7.6824 8.0233 7.4499 8.4346 6.9643 7.4362 6.4677 6.9778 6.8344 6.3455 5.8620 5.9538 5.7432 5.1847 5.3761 4.9766 5.1546 5.1667 5.3276 4.8471 5.2032 5.4275 5.4077 5.6415 5.0051 5.2332 4.5784 4.5706 4.5512 4.6229 4.6695 5.0483 4.3658 4.7439 5.2097 4.5592 5.0945 5.2801 5.9514 5.4574 5.1005 5.4169 4.9158 4.6811 4.9142 3.9432 4.4634 4.5279 3.7743 3.7201 3.8237 4.1733 3.8092 3.8878 3.9458 4.2111 4.0498 4.0890 4.4814 4.8329 4.2840 4.9765 4.7806 5.2517 5.3383 5.6953 5.4535 6.3394 7.4932 6.5225 6.6410 7.2449 6.0693 5.5664 5.5016 4.9012 4.6578 4.3335 4.4643 4.5652 4.7091 4.3044 4.8600 4.6896 4.8160 6.0625 5.2117 4.8620 4.5241 4.1310 4.1746 4.2343 3.9332 3.7558 3.6128 3.7086 3.7051 3.7889 3.6080 3.4807 3.3302 3.5199 3.4875 3.2303 3.4589 3.1039 3.3870 2.9739 2.7950 2.6539 2.3795 2.4028 2.8228 3.2036 3.1666 4.0506 4.1597 4.4871 4.2666 4.5867 5.2511 4.6659 4.5198 4.4966 4.5334 4.7037 5.2210 5.5747 5.5078 5.6325 4.8293 4.6752 4.9780 4.6586 4.2885 3.9486 4.1384 3.9262 4.2906 3.5779 3.4442 3.3079 2.9387 2.7270 2.7255 2.7298 2.7174 2.7347 2.6089 2.6733 3.1234 3.0954 2.9762 3.0950 3.0625 3.3269 3.3345 3.9180 3.7314 4.3813 4.0431 3.6955 3.3673 3.5743 3.7713 3.4927 3.5979 3.9070 4.2234 4.1276 4.6184 4.7397 4.7786 3.7264 3.9168 3.8015 3.9833 3.5011 3.4225 4.0378 3.8343 4.1690 4.1229 4.0223 4.0781 4.5158 4.4536 4.6191 4.3443 4.2877 3.8891 3.7536 3.6292 3.6666 3.7042 3.6009 3.5044 3.6625 3.9087 4.2019 4.3259 4.5012 4.4095 4.8364 5.2872 6.1236 5.5994 6.3178 5.3173 5.6268 4.6348 4.4863 4.3809 4.2442 3.9520 3.9148 3.5221 3.9327 3.5825 3.7505 3.6447 3.6027 3.6771 3.6037 3.7379 3.2804 3.2719 3.1892 3.3616 2.8222 3.2830 2.9674 2.9647 2.9141 2.7631 2.8090 2.8896 2.5728 2.8905 2.6531 2.5863 2.4605 2.2238 2.0139 2.1603 1.7669 1.9067 1.9464 2.0225 2.1516 2.2774 2.7695 2.6047 2.7559 3.0416 3.2553 3.3872 3.7324 3.1126 3.2973 3.1669 3.2076 2.9615 3.1345 3.0733 3.0455 3.5248 3.2874 3.2962 3.1138 3.0428 3.1989 2.9414 3.0286 2.9868 2.6979 2.7507 2.7380 2.7040 2.6525 2.7584 2.9698 2.9744 3.0556 3.2608 3.6160 3.8084 3.8799 3.8005 3.9360 3.7440 4.3232 4.2754 3.6573 3.8704 3.8077 3.7765 3.3792 3.7723 3.5237 3.4218 3.5606 3.4539 3.5653 3.3758 2.8173 3.5818 2.9713 3.1743 3.0333 3.3074 2.6508 3.0867 2.6504 2.9414 2.8959
% Set water depth to 60 m
h = 60;
% Compute the energy flux from the NDBC spectra data and water depth
J = energy_flux(ndbc_data,h);
disp(J)
1.0e+05 * 0.0335 0.0392 0.0328 0.0366 0.0387 0.0318 0.0255 0.0252 0.0192 0.0191 0.0183 0.0220 0.0284 0.0354 0.0402 0.0564 0.0599 0.0957 0.1471 0.1588 0.1790 0.1733 0.2000 0.2511 0.3445 0.1713 0.2199 0.3084 0.1613 0.2191 0.1822 0.1840 0.1752 0.2603 0.2225 0.1955 0.3243 0.1456 0.2506 0.1972 0.2115 0.1839 0.2647 0.1603 0.1501 0.1399 0.1467 0.2020 0.1779 0.2096 0.2539 0.2690 0.2457 0.3275 0.2330 0.2622 0.2400 0.3258 0.3916 0.2903 0.3161 0.3662 0.3675 0.5114 0.4494 0.4858 0.6530 0.6572 0.5328 0.6077 0.4481 0.6162 0.7964 0.5937 0.8101 0.8034 0.8505 0.8926 0.5560 0.5629 0.5749 0.5132 0.4845 0.4862 0.7499 0.4569 0.5243 0.4628 0.4563 0.5884 0.4397 0.4227 0.4232 0.2540 0.2778 0.3397 0.2529 0.3252 0.3438 0.3560 0.3670 0.3716 0.4613 0.3595 0.3449 0.2969 0.2641 0.2713 0.3047 0.2602 0.2771 0.2299 0.2277 0.2704 0.3744 0.4904 0.6292 0.8787 0.9725 0.8726 0.8486 0.7131 0.4557 0.5197 0.4614 0.5587 0.5905 0.4915 0.4291 0.3227 0.3301 0.3052 0.3548 0.2728 0.3141 0.3399 0.3293 0.3148 0.3766 0.4871 0.3833 0.3357 0.3590 0.3634 0.2957 0.2778 0.2710 0.2907 0.1881 0.2025 0.2076 0.1683 0.2204 0.2078 0.1995 0.1864 0.1413 0.1165 0.0974 0.0872 0.0874 0.0938 0.0889 0.1404 0.1530 0.2461 0.3220 0.3891 0.3439 0.4252 0.4204 0.4748 0.3512 0.3079 0.3266 0.3742 0.3317 0.2979 0.3393 0.2916 0.3139 0.2719 0.3487 0.3027 0.3685 0.2997 0.3534 0.3486 0.3298 0.3601 0.3489 0.3357 0.3935 0.4107 0.5044 0.4334 0.4609 0.4222 0.4594 0.4957 0.4143 0.4693 0.4392 0.4909 0.4168 0.3359 0.4198 0.4105 0.4016 0.3589 0.3774 0.3524 0.5106 0.4992 0.4450 0.4919 0.5094 0.4962 0.5458 0.4592 0.5031 0.4284 0.4777 0.3720 0.3051 0.3987 0.3175 0.3343 0.3817 0.4648 0.3563 0.2750 0.3278 0.2732 0.2990 0.2820 0.3014 0.2942 0.2405 0.2370 0.2527 0.2325 0.2180 0.1980 0.2094 0.2437 0.2622 0.2989 0.6041 0.5926 0.9157 0.7717 0.9457 0.7256 0.9728 0.7818 0.8848 0.8273 0.9743 1.0636 0.7206 0.8557 0.9948 1.1545 1.2577 1.2599 1.5104 1.3093 1.5059 1.3076 1.4568 1.9576 1.5282 1.6126 1.6139 1.3291 1.2654 0.8970 1.0964 0.9861 0.9653 0.7505 0.7420 0.8391 0.7122 0.6080 0.7819 0.6093 0.6007 0.5529 0.5328 0.5651 0.4475 0.3844 0.3545 0.3344 0.3647 0.2967 0.3360 0.2836 0.2571 0.2899 0.2166 0.2395 0.1902 0.2606 0.2262 0.2035 0.2621 0.3141 0.2761 0.2970 0.2517 0.2987 0.2885 0.3750 0.3460 0.3914 0.2827 0.2067 0.3768 0.2490 0.3757 0.2641 0.4145 0.4424 0.3495 0.3347 0.3771 0.3875 0.3951 0.3918 0.3595 0.4740 0.4819 0.4799 0.5318 0.6824 0.5801 0.5998 0.6983 0.7496 0.7687 1.0052 0.9950 1.0385 1.0632 1.1529 1.2590 1.0499 1.1156 0.9348 1.4158 1.0591 1.1154 0.8864 0.5774 0.6326 0.5800 0.6867 0.6178 0.8376 1.0542 0.9036 0.8958 0.8653 0.9651 0.9445 0.7898 1.0029 0.8080 0.8616 0.8118 0.8116 0.8125 0.7918 0.7609 0.7568 0.6494 0.6815 0.6934 0.6855 0.7737 0.5716 0.6355 0.6726 0.6878 0.7503 0.6213 0.6848 0.6041 0.5819 0.4474 0.6030 0.5587 0.5508 0.5412 0.5796 0.5808 0.6394 0.6857 0.7668 0.8517 1.2214 1.1930 1.7608 1.8021 1.6161 1.6255 2.1652 1.5712 1.5072 1.4286 1.7837 1.9120 4.1258 5.1349 8.6922 9.4338 7.5885 9.3482 6.5341 4.4961 4.2641 5.3369 4.7119 5.0488 4.8442 5.3892 4.5418 5.9425 3.6872 4.3529 3.1259 3.7120 3.4590 2.9165 2.4449 2.4861 2.2376 1.8352 1.9625 1.6305 1.8884 1.8054 1.9259 1.5893 1.8764 2.0516 2.0170 2.1485 1.6377 1.7096 1.3138 1.2967 1.2348 1.3876 1.3912 1.7798 1.2148 1.4772 1.7908 1.3130 1.6661 1.8585 2.3412 1.9914 1.6782 1.9151 1.6258 1.3688 1.5849 0.9169 1.2844 1.3325 0.8277 0.7515 0.8088 0.9877 0.7347 0.7174 0.7065 0.8229 0.7442 0.7168 0.8897 1.0380 0.7942 1.0650 1.0114 1.2683 1.3205 1.4888 1.4233 1.9604 3.0153 2.4025 2.6400 3.3745 2.3764 2.1077 1.9112 1.5404 1.3079 1.2843 1.3430 1.4136 1.4243 1.1491 1.5376 1.3875 1.4327 2.5142 1.7524 1.4407 1.2561 1.0015 1.0564 1.1389 0.9817 0.8998 0.8183 0.8601 0.8467 0.8833 0.7815 0.6960 0.6401 0.7031 0.6724 0.5694 0.6756 0.5226 0.6491 0.4994 0.4071 0.3675 0.2809 0.2529 0.3742 0.4117 0.3794 0.6664 0.6806 0.7999 0.7360 0.8727 1.1858 0.9335 0.9033 0.8894 0.9200 0.9879 1.2369 1.5025 1.4671 1.5921 1.1893 1.0791 1.2774 1.1820 0.9614 0.7810 0.9069 0.7694 0.9799 0.6449 0.5427 0.5143 0.4227 0.3485 0.3588 0.3552 0.3459 0.3474 0.3133 0.3156 0.4399 0.4451 0.4003 0.4454 0.4113 0.5236 0.4735 0.6547 0.5686 0.8246 0.7205 0.6432 0.5445 0.6202 0.7259 0.6139 0.6670 0.8120 1.0132 1.0446 1.3115 1.4478 1.5026 0.8072 0.9735 0.8926 0.9751 0.6993 0.6425 1.0480 0.8726 1.0568 1.0555 0.8913 0.8957 1.1661 1.0999 1.2169 1.0405 1.0096 0.8044 0.7291 0.6629 0.7048 0.7267 0.6927 0.6008 0.6352 0.6502 0.7779 0.8163 0.8407 0.7967 1.0066 1.2283 1.7087 1.5237 1.9766 1.3972 1.6939 1.1268 1.0309 0.9612 0.9673 0.7827 0.7992 0.6395 0.7858 0.6335 0.7156 0.6357 0.6320 0.6654 0.6512 0.6960 0.5214 0.5189 0.5009 0.5875 0.3783 0.5798 0.4407 0.4649 0.4373 0.3724 0.3739 0.4224 0.3103 0.4109 0.3348 0.3050 0.2661 0.2151 0.1834 0.2044 0.1306 0.1626 0.1712 0.1844 0.2228 0.2546 0.3924 0.3408 0.3641 0.4398 0.5216 0.5720 0.7047 0.4485 0.5253 0.5074 0.5004 0.4332 0.5284 0.4773 0.4303 0.5675 0.4765 0.4818 0.4263 0.3999 0.4634 0.3752 0.3963 0.3986 0.3136 0.3433 0.3483 0.3360 0.3574 0.3804 0.4615 0.4882 0.5471 0.6150 0.7758 0.9361 0.9365 0.8929 0.9501 0.8499 1.1873 1.1439 0.8685 0.9412 0.9151 0.9046 0.6835 0.9160 0.7794 0.6902 0.7552 0.7376 0.7574 0.6568 0.4290 0.7284 0.4700 0.5636 0.5038 0.6149 0.3760 0.5253 0.3815 0.5050 0.4707

Generate Random Power Data

For demonstration purposes, this example uses synthetic power data generated from statistical distributions. In a real application, the user would provide power values from a WEC.
% generating 1,000,000 random power values
Power = randi([40,200], 743,1);
disp(Power)
53 121 156 162 189 148 149 176 57 133 135 135 121 192 47 100 72 51 103 50 74 163 129 112 184 162 182 179 58 155 92 199 115 94 72 129 58 89 154 146 164 160 174 158 100 77 133 80 130 85 52 91 74 99 166 72 91 72 66 61 181 162 41 96 133 93 70 195 176 155 118 68 110 159 83 153 150 88 147 115 109 107 145 178 48 199 44 86 59 99 188 67 198 196 49 41 40 182 102 122 151 146 186 43 74 67 79 88 190 73 141 79 49 73 171 143 62 44 87 165 60 64 58 193 105 102 162 109 175 88 189 194 136 63 149 47 40 135 47 112 118 140 67 66 197 178 102 170 150 92 168 193 45 141 71 95 71 80 87 113 139 166 95 117 85 48 95 194 182 83 145 192 99 162 61 199 187 192 85 184 196 139 198 185 157 86 179 156 76 88 186 131 184 156 91 57 186 90 51 93 46 89 194 69 94 46 73 173 90 173 161 53 154 68 45 112 177 129 117 85 171 55 156 134 107 100 111 152 183 160 185 83 89 65 125 164 153 60 157 151 136 186 169 139 147 77 167 60 81 82 78 129 193 98 129 187 146 99 176 130 94 199 44 113 103 107 134 198 103 85 149 83 59 81 120 109 197 165 89 191 44 134 182 117 92 73 109 93 144 107 97 123 61 199 195 98 118 67 131 171 63 101 145 184 147 72 121 195 60 199 182 122 142 93 130 169 57 92 96 105 182 134 43 90 185 176 52 81 61 82 46 54 123 44 129 69 88 157 41 139 128 139 101 163 153 187 151 151 198 120 170 98 101 193 105 121 121 130 111 126 157 187 96 46 127 124 185 93 178 155 188 149 135 102 120 78 195 196 121 176 175 197 93 152 81 99 132 127 186 191 79 134 197 124 167 139 58 158 74 60 172 117 90 182 158 76 178 140 138 165 172 79 69 194 163 183 92 113 112 72 111 90 48 181 149 113 64 69 150 107 108 189 54 82 135 63 98 81 78 169 127 72 69 74 98 186 126 147 106 85 161 130 60 70 88 87 65 42 145 130 81 119 42 173 184 86 139 60 196 157 163 144 97 62 92 171 69 100 148 130 116 133 190 97 165 75 120 77 168 102 103 158 119 58 72 116 49 129 127 102 196 129 174 157 115 113 179 98 159 131 75 111 42 131 92 170 97 42 102 103 79 65 83 196 107 138 128 47 167 150 48 152 111 113 171 188 181 192 150 149 80 75 188 82 76 165 155 116 52 106 160 123 40 110 166 148 87 114 80 142 125 65 110 125 142 181 139 179 82 40 97 178 62 99 70 52 107 136 167 85 80 58 196 172 172 131 108 140 42 108 187 53 173 53 134 56 118 96 63 61 73 50 167 44 199 79 41 188 167 123 50 78 162 125 127 99 115 144 138 87 189 120 55 62 128 135 80 59 160 147 166 102 52 151 126 94 175 45 181 156 75 52 162 197 61 75 140 175 118 96 122 185 79 85 173 55 188 41 199 75 67 146 106 163 103 74 100 193 141 40 191 58 103 131 183 134 114 68 145 93 176 130 40 161 183 54 125 88 111 103 49 41 88 188 111 58 154 59 94 58 72 176 56 68 164 127 194 59 55 122 101 173 66 86 153 159 66 168 48 190 180 75 150 169 154 165 110 49 116 109 166 56 129 50 121 165 159 131 48 134 114 182 65

Capture Length Matrices

The following operations create capture length matrices, as specified by the IEC/TS 62600-100. But first, we need to calculate capture length and define bin centers. The mean capture length matrix is printed below. Keep in mind that this data has been artificially generated, so it may not be representative of what a real-world scatter diagram would look like.
% calculating capture length with power and wave flux in vectors
L = capture_length(Power,J)
L = 743×1
0.0158 0.0309 0.0476 0.0442 0.0489 0.0465 0.0583 0.0698 0.0297 0.0698
% Need to set our Hm0 and Te bins for the capture length matrix
Hm0_bins = -0.5:0.5:max(fix(Hm0))+0.5; % Input is min, max, and n indecies for vector
Hm0_bins = Hm0_bins+0.25 ;
Te_bins = 0:1:max(fix(Te));
Te_bins = Te_bins+0.5;
% Calculate the necessary capture length matrices for each statistic based
% on IEC/TS 62600-100
clmat.mean = capture_length_matrix(Hm0,Te,L,"mean",Hm0_bins,Te_bins);
clmat.std = capture_length_matrix(Hm0,Te,L,"std",Hm0_bins,Te_bins);
clmat.count = capture_length_matrix(Hm0,Te,L,"count",Hm0_bins,Te_bins);
clmat.min = capture_length_matrix(Hm0,Te,L,"min",Hm0_bins,Te_bins);
clmat.max = capture_length_matrix(Hm0,Te,L,"max",Hm0_bins,Te_bins);
% Calculate the frequency matrix for convenience
clmat.freq = capture_length_matrix(Hm0,Te,L,"frequency",Hm0_bins,Te_bins);
Let's see what the data in the mean matrix looks like. Keep in mind that this data has been artificially generated, so it may not be representative of what a real-world scatter diagram would look like.
disp(clmat.mean.values)
Columns 1 through 11 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.0497 0.0518 0.0426 NaN 0.0330 NaN NaN NaN NaN NaN NaN NaN 0.0309 NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.0142 0.0115 0.0077 0.0097 0.0074 NaN NaN NaN NaN NaN NaN 0.0056 0.0020 0.0051 0.0047 0.0043 NaN NaN NaN NaN NaN NaN NaN NaN 0.0038 0.0030 0.0030 NaN NaN NaN NaN NaN NaN NaN 0.0023 0.0026 0.0020 0.0020 NaN NaN NaN NaN NaN NaN NaN 0.0023 0.0020 0.0017 0.0017 NaN NaN NaN NaN NaN NaN NaN 0.0018 0.0014 0.0013 0.0012 NaN NaN NaN NaN NaN NaN NaN NaN 0.0012 0.0010 0.0010 NaN NaN NaN NaN NaN NaN NaN NaN 0.0009 0.0007 0.0007 NaN NaN NaN NaN NaN NaN NaN NaN 0.0008 0.0009 NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.0003 0.0005 0.0008 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.0003 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.0004 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN Columns 12 through 16 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.0149 NaN NaN NaN NaN NaN 0.0053 0.0073 NaN NaN 0.0059 0.0055 0.0062 0.0045 NaN 0.0032 0.0026 0.0026 0.0053 NaN 0.0027 0.0024 0.0018 0.0018 NaN 0.0020 0.0019 0.0014 0.0012 NaN 0.0014 NaN 0.0015 NaN NaN 0.0009 0.0009 0.0016 0.0007 NaN 0.0007 0.0010 NaN NaN NaN 0.0007 0.0006 NaN NaN NaN 0.0006 0.0006 NaN NaN NaN 0.0004 0.0003 0.0003 NaN NaN NaN NaN 0.0004 NaN NaN 0.0004 NaN 0.0003 0.0003 NaN NaN NaN 0.0002 0.0001 NaN NaN NaN NaN 0.0002 NaN NaN NaN NaN NaN 0.0001 NaN NaN NaN NaN 0.0001 NaN NaN NaN NaN 0.0001 NaN NaN NaN NaN 0.0001 NaN NaN NaN NaN NaN

Power Matrices

As specified in IEC/TS 62600-100, the power matrix is generated from the capture length matrix and wave energy flux matrix, as shown below
% Create wave energy flux matrix using mean
jmat = wave_energy_flux_matrix(Hm0,Te,J,"mean",Hm0_bins,Te_bins);
% Create power matrix using mean
avg_power_mat = power_matrix(clmat.mean, jmat);
% Create power matrix using standard deviation
std_power_mat = power_matrix(clmat.std, jmat);
The capture_length_matrix function can also be used as an arbitrary scatter plot generator. To do this, simply pass a different array in the place of capture length (L). For example, while not specified by the IEC standards, if the user doesn't have the omnidirectional wave flux, the average power matrix could hypothetically be generated in the following manner:
avgpowmat_not_standard = capture_length_matrix(Hm0,Te,Power,'mean',Hm0_bins,Te_bins);

MAEP

There are two ways to calculate mean annual energy production (MEAP). One is from capture length and wave energy flux matrices, the other is from time series data, as shown below.
% Calcaulte maep from timeseries
maep_timeseries = mean_annual_energy_production_timeseries(L,J)
maep_timeseries = 1.0428e+06
% Calcaulte maep from matrix
maep_matrix = mean_annual_energy_production_matrix(clmat.mean, jmat , clmat.freq)
maep_matrix = 1.0534e+06

Graphics

The graphics function plot_matrix can be used to visualize results. It is important to note that the plotting function assumes the step size between bins to be linear.
% Plot the capture length matrix
p1 = plot_matrix(clmat.mean,"Capture Length");