📄 windforceonvessel.c
字号:
mclPrintArray(mclVv(Tab10_2_3, "Tab10_2_3"), "Tab10_2_3");
/*
* for i=1:3
*/
{
int v_ = mclForIntStart(1);
int e_ = 3;
if (v_ > e_) {
mlfAssign(&i, _mxarray5_);
} else {
/*
*
* switch PerVesData(15)%船型:1-矿石、2-油船、其他-货船等。
* case 1
* if VesLoadCon(i)==3
* Axwin=10^(0.648+0.55.*log(DW))
* Aywin=10^(0.427+0.48.*log(DW))
* else
* Axwin=10^(0.733+0.601.*log(DW))
* Aywin=10^(0.377+0.533.*log(DW))
* end
* case 2
* if VesLoadCon(i)==3
* Axwin=10^(0.485+0.574.*log(DW))
* Aywin=10^(0.116+0.539.*log(DW))
* else
* Axwin=10^(0.618+0.62.*log(DW))
* Aywin=10^(0.164+0.575.*log(DW))
* end
* otherwise
* if VesLoadCon(i)==3
* Axwin=10^(-0.036+0.742.*log(DW))
* Aywin=10^(-0.107+0.621.*log(DW))
* else
* Axwin=10^(0.283+0.727.*log(DW))
* Aywin=10^(0.019+0.628.*log(DW))
* end
* end
* if L<50
* Cwinpx=1;
* elseif L>250
* Cwinpx=0.60;
* else
* Cwinpx=interp1(Tab10_2_3(1,:),Tab10_2_3(2,:),PerVesData(2));
* end
* if B<50
* Cwinpy=1;
* elseif B>250
* Cwinpy=0.6;
* else
* Cwinpy=interp1(Tab10_2_3(1,:),Tab10_2_3(2,:),PerVesData(3));
* end
* Fxwin=73.6.*(10e-5).*Axwin.*Vwin^2.*Cwinpx;
* Fywin=49.*(10e-5).*Aywin.*Vwin^2.*Cwinpy;
* WinForceOutput(i,:)=[VesLoadCon(i),Fxwin,Fywin,Axwin,Aywin,Cwinpx,Cwinpy];
* end
*/
for (; ; ) {
mxArray * v_0
= mclInitialize(
mclIntArrayRef1(mclVv(PerVesData, "PerVesData"), 15));
if (mclSwitchCompare(v_0, _mxarray2_)) {
if (mclEqBool(
mclIntArrayRef1(mclVv(VesLoadCon, "VesLoadCon"), v_),
_mxarray6_)) {
mlfAssign(
&Axwin,
mclMpower(
_mxarray7_,
mclPlus(
_mxarray8_,
mclTimes(_mxarray9_, mlfLog(mclVv(DW, "DW"))))));
mclPrintArray(mclVv(Axwin, "Axwin"), "Axwin");
mlfAssign(
&Aywin,
mclMpower(
_mxarray7_,
mclPlus(
_mxarray10_,
mclTimes(_mxarray11_, mlfLog(mclVv(DW, "DW"))))));
mclPrintArray(mclVv(Aywin, "Aywin"), "Aywin");
} else {
mlfAssign(
&Axwin,
mclMpower(
_mxarray7_,
mclPlus(
_mxarray12_,
mclTimes(_mxarray13_, mlfLog(mclVv(DW, "DW"))))));
mclPrintArray(mclVv(Axwin, "Axwin"), "Axwin");
mlfAssign(
&Aywin,
mclMpower(
_mxarray7_,
mclPlus(
_mxarray14_,
mclTimes(_mxarray15_, mlfLog(mclVv(DW, "DW"))))));
mclPrintArray(mclVv(Aywin, "Aywin"), "Aywin");
}
} else if (mclSwitchCompare(v_0, _mxarray16_)) {
if (mclEqBool(
mclIntArrayRef1(mclVv(VesLoadCon, "VesLoadCon"), v_),
_mxarray6_)) {
mlfAssign(
&Axwin,
mclMpower(
_mxarray7_,
mclPlus(
_mxarray17_,
mclTimes(_mxarray18_, mlfLog(mclVv(DW, "DW"))))));
mclPrintArray(mclVv(Axwin, "Axwin"), "Axwin");
mlfAssign(
&Aywin,
mclMpower(
_mxarray7_,
mclPlus(
_mxarray19_,
mclTimes(_mxarray20_, mlfLog(mclVv(DW, "DW"))))));
mclPrintArray(mclVv(Aywin, "Aywin"), "Aywin");
} else {
mlfAssign(
&Axwin,
mclMpower(
_mxarray7_,
mclPlus(
_mxarray21_,
mclTimes(_mxarray22_, mlfLog(mclVv(DW, "DW"))))));
mclPrintArray(mclVv(Axwin, "Axwin"), "Axwin");
mlfAssign(
&Aywin,
mclMpower(
_mxarray7_,
mclPlus(
_mxarray23_,
mclTimes(_mxarray24_, mlfLog(mclVv(DW, "DW"))))));
mclPrintArray(mclVv(Aywin, "Aywin"), "Aywin");
}
} else {
if (mclEqBool(
mclIntArrayRef1(mclVv(VesLoadCon, "VesLoadCon"), v_),
_mxarray6_)) {
mlfAssign(
&Axwin,
mclMpower(
_mxarray7_,
mclPlus(
_mxarray25_,
mclTimes(_mxarray26_, mlfLog(mclVv(DW, "DW"))))));
mclPrintArray(mclVv(Axwin, "Axwin"), "Axwin");
mlfAssign(
&Aywin,
mclMpower(
_mxarray7_,
mclPlus(
_mxarray27_,
mclTimes(_mxarray28_, mlfLog(mclVv(DW, "DW"))))));
mclPrintArray(mclVv(Aywin, "Aywin"), "Aywin");
} else {
mlfAssign(
&Axwin,
mclMpower(
_mxarray7_,
mclPlus(
_mxarray29_,
mclTimes(_mxarray30_, mlfLog(mclVv(DW, "DW"))))));
mclPrintArray(mclVv(Axwin, "Axwin"), "Axwin");
mlfAssign(
&Aywin,
mclMpower(
_mxarray7_,
mclPlus(
_mxarray31_,
mclTimes(_mxarray32_, mlfLog(mclVv(DW, "DW"))))));
mclPrintArray(mclVv(Aywin, "Aywin"), "Aywin");
}
}
mxDestroyArray(v_0);
if (mclLtBool(mclVv(L, "L"), _mxarray33_)) {
mlfAssign(&Cwinpx, _mxarray2_);
} else if (mclGtBool(mclVv(L, "L"), _mxarray34_)) {
mlfAssign(&Cwinpx, _mxarray35_);
} else {
mlfAssign(
&Cwinpx,
mlfInterp1(
mclArrayRef2(
mclVv(Tab10_2_3, "Tab10_2_3"),
_mxarray2_,
mlfCreateColonIndex()),
mclArrayRef2(
mclVv(Tab10_2_3, "Tab10_2_3"),
_mxarray16_,
mlfCreateColonIndex()),
mclIntArrayRef1(mclVv(PerVesData, "PerVesData"), 2),
NULL));
}
if (mclLtBool(mclVv(B, "B"), _mxarray33_)) {
mlfAssign(&Cwinpy, _mxarray2_);
} else if (mclGtBool(mclVv(B, "B"), _mxarray34_)) {
mlfAssign(&Cwinpy, _mxarray35_);
} else {
mlfAssign(
&Cwinpy,
mlfInterp1(
mclArrayRef2(
mclVv(Tab10_2_3, "Tab10_2_3"),
_mxarray2_,
mlfCreateColonIndex()),
mclArrayRef2(
mclVv(Tab10_2_3, "Tab10_2_3"),
_mxarray16_,
mlfCreateColonIndex()),
mclIntArrayRef1(mclVv(PerVesData, "PerVesData"), 3),
NULL));
}
mlfAssign(
&Fxwin,
mclTimes(
mclTimes(
mclTimes(_mxarray36_, mclVv(Axwin, "Axwin")),
mclMpower(mclVv(Vwin, "Vwin"), _mxarray16_)),
mclVv(Cwinpx, "Cwinpx")));
mlfAssign(
&Fywin,
mclTimes(
mclTimes(
mclTimes(_mxarray37_, mclVv(Aywin, "Aywin")),
mclMpower(mclVv(Vwin, "Vwin"), _mxarray16_)),
mclVv(Cwinpy, "Cwinpy")));
mclArrayAssign2(
&WinForceOutput,
mlfHorzcat(
mclIntArrayRef1(mclVv(VesLoadCon, "VesLoadCon"), v_),
mclVv(Fxwin, "Fxwin"),
mclVv(Fywin, "Fywin"),
mclVv(Axwin, "Axwin"),
mclVv(Aywin, "Aywin"),
mclVv(Cwinpx, "Cwinpx"),
mclVv(Cwinpy, "Cwinpy"),
NULL),
mlfScalar(v_),
mlfCreateColonIndex());
if (v_ == e_) {
break;
}
++v_;
}
mlfAssign(&i, mlfScalar(v_));
}
}
mclValidateOutput(
WinForceOutput, 1, nargout_, "WinForceOutput", "windforceonvessel");
mxDestroyArray(VesNo);
mxDestroyArray(VesLoadCon);
mxDestroyArray(Vwin);
mxDestroyArray(PerVesData);
mxDestroyArray(DW);
mxDestroyArray(B);
mxDestroyArray(L);
mxDestroyArray(Tab10_2_3);
mxDestroyArray(i);
mxDestroyArray(Axwin);
mxDestroyArray(Aywin);
mxDestroyArray(Cwinpx);
mxDestroyArray(Cwinpy);
mxDestroyArray(Fxwin);
mxDestroyArray(Fywin);
mxDestroyArray(VesData);
mxDestroyArray(WinForceInput);
mclSetCurrentLocalFunctionTable(save_local_function_table_);
return WinForceOutput;
/*
* end
*
*
*
*
*
*
*
*
*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -