2012-04-01 7 views
3

にこんにちは、私はMATLABに新しいです文字列を作るためにMATLABで動作していない、私は機能に私の文字列を作ることができる方法を知りたいと思いました。私は、ここでXは可変である(例えばexp(-10*X)-sin(pi*X)-2*tanh(X))標準Matlabの形式でユーザからの文字列としての機能にアクセスしたいです。次に、これらの限界値で関数の値を計算するために、 'X'を 'low'と 'high'変数に置き換えたいと思います。私はこの目的のために 'strrep'を使いました。次のエラーが発生しました 1)未定義の関数または変数 'X'。 2)私は「X」が「低」と「高」で置き換えられたかどうかを確認することはできません。Strrepが機能

すべてのヘルプは本当に理解されるであろう。 以下は私のコードです。

high=input('Upper Limit of the Interval : '); 

    low=input('\nLower Limit of the interval : '); 

    usr_funct=input('Enter The Function in standard Matlab Format.\nEnter "X" for the 
    variable and * for multiply \n'); % Example exp(-10*X)-sin(pi*X)-2*tanh(X); 

    middle = (low+high)/2; 

    Flow =strrep(usr_funct, 'X', 'low'); 
    Fhigh =strrep(usr_funct, 'X', 'high'); 

    sprintf('Flow '); % This was to check if 'X' was replaced with 'low'. It is not printing anything 

答えて

2

私はあなたがeval関数を探していると思います。それはMATLABコードとして文字列を評価します。ここで

は一例です:

str = 'exp(-10*X)-sin(pi*X)-2*tanh(X)' ; % let str be your math expression 
high = 10; % Ask the user 
low = -5; % Ask the user 

% Now we evaluate for High and Low 
X = low; % We want to evaluate for low 
ResultLow = eval(str); % That will return your value for X = low 
X = high; % We want to evaluate for low 
ResultHigh = eval(str); % That will return your value for X = high 
2

1)未定義の関数や変数「X」

あなたがinputのドキュメントを見れば、それはデフォルトで、それは式を評価することを言います。文字列を保存するには、2番目の引数 's'を追加する必要があります。

2)私は「X」「は低い」と「高」

あなたが入力する必要がありますsprintf(Flow)の代わりsprintf('Flow')と交換したかどうかを確認することはできません。後者は画面に "Flow"を出力し、前者はFlowの値を出力します。

最後に、eval機能は、あなたが実際にあなたの式を評価したい場合には、後の使用であってもよいです。

3

用途:

usr_funct=input('Enter The Function...', 's'); 

これは、式を評価せずに、MATLAB文字列として入力したテキストを返します。