# How to fix "Error using indexing" while calculating differential equations?

5 ビュー (過去 30 日間)
Iita 2024 年 6 月 29 日

syms y(t)
ode = diff(y,t) == t*y
ode(t) =
ySol(t) = dsolve(ode)
ySol(t) =
I copied this example straight from the MatLAB "Solve differential equations" > "First-Order Linear ODE" -example and hoped to modify it to solve my own equation, but it gives me an error message of "Error using indexing: Invalid argument at position 2. Symbolic function expected 1 input arguments but received 2.". I have no clue how to fix it, so help would be kindly appreciated.
##### 3 件のコメント1 件の古いコメントを表示1 件の古いコメントを非表示
Iita 2024 年 6 月 29 日
Ah, I've got the R2023a version. I imagine an update would fix things quite efficiently :,D
Torsten 2024 年 6 月 29 日

I don't see any changes made in "dsolve" from R2023a to R2024a, but you can try.
Do you get the same error with this code ? Or does the error happen later on in your code when you try to manipulate ySol ?
syms y(t)
ode = diff(y,t) == t*y;
ySol = dsolve(ode)
ySol =

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

### 回答 (1 件)

John D'Errico 2024 年 6 月 30 日

The code you show will work perfectly in MATLAB, in literally any recent release of MATLAB. R2023 is entirely recent.
However, it is very possible that you have defined a variable named diff in your workspace. For example, let me do this:
syms y(t)
diff(t) = y(t)
diff(t) =
ode = diff(y,t) == t*y
Error using indexing (line 249)
Invalid argument at position 2. Symbolic function expected 1 input arguments but received 2.
Do you see that I have gotten exactly the same error you were given?
Do this at the command line:
whos diff -all
And then delete the variable named diff.

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

### カテゴリ

Help Center および File ExchangeProgramming についてさらに検索

R2023a

### Community Treasure Hunt

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

Start Hunting!

Translated by