# How can my function work?

1 ビュー (過去 30 日間)
Wytse Petrie 2019 年 12 月 12 日

Hi all,
My function does not work and I do not understand. Is there someone who can help me?
if 0<=t & t<=3/12
Wans=0
elseif 3/12<=t & t<8/12
Wans=2
elseif 8/12<=t & t<1
Wans=0
elseif
end

サインインしてコメントする。

### 回答 (3 件)

Star Strider 2019 年 12 月 12 日
Either change the function output to ‘Wans’:
or change the ‘Wans’ within it to ‘W’.
##### 0 件のコメント表示非表示 -1 件の古いコメント

サインインしてコメントする。

Tom Holz 2019 年 12 月 12 日
First, change Wans to W everywhere, otherwise you are not setting the output variable.
Second, your final elseif should be changed to an else.
Finally, you might want to add a semicolon to the end of all the lines where you assign values. (Not required, just prevents lots of extra output).
##### 0 件のコメント表示非表示 -1 件の古いコメント

サインインしてコメントする。

Steven Lord 2019 年 12 月 12 日
In addition to what the others have stated, since you're using & in your if conditions I'm guessing you're passing a vector, matrix, or other non-scalar t into fishing_load_factor.
How does if handle its condition being non-scalar? From the documentation "An expression is true when its result is nonempty and contains only nonzero elements (logical or real numeric). Otherwise, the expression is false." So your the first if condition will only be satisfied if all the elements of t are greater than or equal to 0 and less than or equal to 3/12.If even one element fails that test, the if condition is not satisfied and MATLAB moves on to the first elseif.
If you are passing a non-scalar t into fishing_load_factor you may want to use logical indexing to fill in the appropriate elements in Wans or W.

サインインしてコメントする。

R2019b

### Community Treasure Hunt

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

Start Hunting!

Translated by