Using a loop and counter for parametric equations

조회 수: 1 (최근 30일)
Landon Sugar
Landon Sugar 2019년 10월 18일
댓글: darova 2019년 10월 21일
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:
Screen Shot 2019-10-18 at 9.42.42 AM.png

채택된 답변

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2019년 10월 18일
Hi
Here is the solution of your task:
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
  댓글 수: 2
Sulaymon Eshkabilov
Sulaymon Eshkabilov 2019년 10월 21일
Memory allocation is already done for : L, k, Cg and E.
darova
darova 2019년 10월 21일
Yes, Sir!

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

darova
darova 2019년 10월 18일
Preallocate array before loop
E = zeros(3-1+1,22-5+1,6-5+1);
for
%% E(H,T,h) = ...
end
  댓글 수: 2
Landon Sugar
Landon Sugar 2019년 10월 18일
편집: Landon Sugar 2019년 10월 18일
Thank you for your response!
what does the "3-1+1, 22-5+1, 6-5+1" part mean?
darova
darova 2019년 10월 18일
Those values are dimensions of 3D matrix. You will have 3 x 18 x 2 matrix. You want to visualize it?

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Entering Commands에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by