# Using a loop and counter for parametric equations

5 views (last 30 days)
Landon Sugar on 18 Oct 2019
Commented: darova on 21 Oct 2019
I'm very new to MATLAB so I am aware this code is probably atrocious. Please speak clearly!
I have an equation for calculating wave power density (E) in an ocean wave. It has three variables (H, T, and h) with different numerical ranges. (i.e. H ranges from 1 to 3, T ranges from 5 to 22, and h ranges from 5 to 6.) I want to create a FOR loop where MATLAB will plug in different numbers, with increments of 1, essentially being a parametric study. I can't find any clear videos or links on nested for loops with counters.
Ex:

Sulaymon Eshkabilov on 18 Oct 2019
Hi
function E = realED(H, T, h)
%
%
%
rho=1030;
g=9.81;
%
%
L = zeros(numel(H), numel(T), numel(h));
k=L;
Cg=L;
E=L;
for ii=1:numel(H)
for m=1:numel(T)
for jj = 1:numel(h)
L(ii, m, jj) = (g*T(m)^2)/(2*pi*tan(h(jj)))*((4*pi)^2)*h(jj)/(g*T(m)^2)^3;
k(ii, m, jj)=2*pi/L(ii, m, jj);
Cg(ii, m, jj) = .5*((1+((2*k(ii, m, jj)*h(jj))/sin(h(jj))))*2*k(ii,m,jj)*h(jj))*L(ii, m, jj)/T(m);
E(ii, m, jj) = ((rho*g)/16)*(H(ii)^2)*Cg(ii, m, jj);
end
end
end
Good luck

Sulaymon Eshkabilov on 21 Oct 2019
Memory allocation is already done for : L, k, Cg and E.
darova on 21 Oct 2019
Yes, Sir!

darova on 18 Oct 2019
Preallocate array before loop
E = zeros(3-1+1,22-5+1,6-5+1);
for
%% E(H,T,h) = ...
end

Landon Sugar on 18 Oct 2019
what does the "3-1+1, 22-5+1, 6-5+1" part mean?
darova on 18 Oct 2019
Those values are dimensions of 3D matrix. You will have 3 x 18 x 2 matrix. You want to visualize it?