フィルターのクリア

why the + sign get invalid use of operator?

4 ビュー (過去 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 ExchangeCell Arrays についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by