why the + sign get invalid use of operator?

2 ビュー (過去 30 日間)
wenchong chen
wenchong chen 2021 年 3 月 7 日
コメント済み: Steven Lord 2021 年 3 月 7 日
f=@(x)40*x.^1.5-875*x.+350000
f=@(x)40*x.^1.5-875*x.+350000
Error: Invalid use of operator.

回答 (2 件)

Stephen23
Stephen23 2021 年 3 月 7 日
編集済み: Stephen23 2021 年 3 月 7 日
Note the difference:
1 + 2 % what MATLAB actually supports
1 .+ 2 % what you used
Invalid use of operator.
There is no separate array version of the plus operator, it always operates array-wise.
Rather than guessing and inventing operators, it is much more reliable to follow the MATLAB documentation:

wenchong chen
wenchong chen 2021 年 3 月 7 日
I can only put f=@(x)40.*x^1.5-875.*x+350000 in it
  1 件のコメント
Steven Lord
Steven Lord 2021 年 3 月 7 日
Yes, that looks correct to me, at least for scalar values of x. If you want f to accept non-scalar values of x you need to use elementwise matrix power rather than matrix power as the error message indicates.
f=@(x)40.*x^1.5-875.*x+350000;
f(1)
ans = 349165
f(1:10)
Error using ^ (line 51)
Incorrect dimensions for raising a matrix to a power. Check that the matrix is square and the power is a scalar. To perform elementwise matrix powers, use '.^'.

Error in solution (line 1)
f=@(x)40.*x^1.5-875.*x+350000;

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

カテゴリ

Help Center および File ExchangeOperators and Elementary Operations についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by