0
這裏的主要問題是評估用戶函數在某個點,因爲我們不知道用戶將進入X域的功能或其他域找到用戶輸入的函數f(1)或f(2)的f(任意值)
我試過,但它不工作:
function y = f(~)
y = input('Enter you function: ');
end
,這就是我想要的:
>>f
Enter you function: a^2+3*a-3
>>f(1)
ans =
1
這裏的主要問題是評估用戶函數在某個點,因爲我們不知道用戶將進入X域的功能或其他域找到用戶輸入的函數f(1)或f(2)的f(任意值)
我試過,但它不工作:
function y = f(~)
y = input('Enter you function: ');
end
,這就是我想要的:
>>f
Enter you function: a^2+3*a-3
>>f(1)
ans =
1
該解決方案几乎提供確切的要求在你的問題。儘管使用EVAL,但我會覺得有點奇怪。你也想把一些錯誤檢查包裝進去。
classdef f < handle
properties (Access = private)
functionString = '';
end
methods
function obj = f
if nargin == 0
obj.functionString = input('Enter your function: ', 's');
end
end
function value = subsref(obj, a)
a = a.subs{:};
value = eval(obj.functionString);
end
function display(obj)
end
end
end
然後,您可以使用這個類,如:
>> a = f Enter your function: a^2+3*a-3 >> a(1) ans = 1 >> a(2) ans = 7
另一種解決方案是使用函數處理:
>> [email protected](x) x^2+3*x-3 f = @(x)x^2+3*x-3 >> f(1) ans = 1 >> f(2) ans = 7
酷,它工作正常!好的,如果我想要它返回拉普拉斯函數的初始值(即f(0))(例如,如果我們有F(s),fs =(s^2 + 6 * s + 9)/(s^3 + 2 * s^2-s-2),然後我們找到等於ft = ilaplace(fs)的f(t);如何找到值爲0的f(t))這就是我想要做的全部 – 2011-03-05 00:19:39
@Eng。 Fouad:將上面的類中的行從'a = a.subs {:};'更改爲't = a.subs {:};'。在命令行運行'ilaplace(fs)',複製結果,通過在命令行輸入'a = f'運行上面的類並在提示輸入函數時粘貼。 – 2011-03-05 00:32:21
@ b3:有沒有辦法將ilaplace方法包含進類中,所以我不需要複製和粘貼任何東西 – 2011-03-05 00:45:33