Hello,
So when I run the code I don't get my variable "I" on the right side. The variable is in the following part od the code:
if Ms >=3.5
I = 21.29 * Ms - 69.4;
elseif Ms >= 2
I = 2.73 * Ms - 4.47;
elseif Ms >= 0
I = 0.5 * Ms;
elseif Ms >= (-2)
I = 0.5 * Ms;
elseif Ms >= (-3.5)
I = 2.73 * Ms + 4.47;
elseif Ms < (-3.5)
I = 21.29 * Ms + 69.4;
end
What could be the problem?

2 件のコメント

Stephen23
Stephen23 2021 年 8 月 24 日
編集済み: Stephen23 2021 年 8 月 24 日
"What could be the problem?"
Ms is non-scalar, and contains false values.
The MATLAB approach is to use logical indexing, not IF/ELSEIF/END.
Frane
Frane 2021 年 8 月 24 日
What can I change to fix it?

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

 採用された回答

Stephen23
Stephen23 2021 年 8 月 24 日

0 投票

"What can I change to fix it?"
Use logical indexing, e.g.:
I = 0.5 * Ms;
X = Ms>=3.5;
I(X) = 21.29 * Ms(X) - 69.4;
X = Ms>=2 & Ms<3.5;
I(X) = 2.73 * Ms(X) - 4.47;
X = Ms<(-2) & Ms>=(-3.5)
I(X) = 2.73 * Ms(X) + 4.47;
X = Ms<(-3.5);
I(X) = 21.29 * Ms(X) + 69.4;

1 件のコメント

Frane
Frane 2021 年 8 月 24 日
編集済み: Frane 2021 年 8 月 24 日
It worked.

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeModeling についてさらに検索

タグ

質問済み:

2021 年 8 月 24 日

編集済み:

2021 年 8 月 24 日

Community Treasure Hunt

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

Start Hunting!

Translated by