How to input equations in MATLAB and operate it?
18 ビュー (過去 30 日間)
古いコメントを表示
I'm using MATLAB R2013a. I want to input an equation in Matlab like f(x) = x^2 - 2*x + 3. And I want it to be inputted by the user. I use inline() function for this. eg.
func = input('Enter a function: ','s');
f = inline(func);
And I have able to do some works with it. But I want to differentiate this equation. I was trying to use diff() function for this. But it doesn't work. When I use diff(f,x); it shows error. How can I solve my problem?
0 件のコメント
採用された回答
Walter Roberson
2016 年 1 月 1 日
You should not use inline(). inline() has been recommended against since MATLAB 5.1, over a decade ago. inline() was replaced with anonymous functions, which can be built using str2func()
You cannot differentiate inline functions or anonymous functions. You can parse the string, and develop a set of routines to differentiate whatever set of input functions you allow. Or you can use the Symbolic Toolbox. For example,
f = sym('x^2 - 2*x + 3')
diff(f,x)
3 件のコメント
Walter Roberson
2016 年 1 月 1 日
func = input('Enter a function: ','s');
f = sym(func);
diff(f,x)
その他の回答 (2 件)
Jonathan Moussa NDAO
2021 年 5 月 17 日
You can try using the matlab builtin func str2func that convert your input in a matlab function handler like syntax('
')
func = str2func(input("Enter the function, e.g @(x)2*x - 3: ", "s"));
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Function Creation についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!