2016-08-18 13 views
0

オクターブを使った経験があります。しかし、matlabは非常に異なった動作をしています。 は、私はこの単純なスクリプトを持っている:私は(GUIにおけるグリーン「play'-矢印という)、それを実行するとmatlabスクリプトは関数を受け付けませんか?

function y=test(x) 
    y=x*10; 
end 

a=test(10); 

それは私に次のエラーを与える:

Error: File: TESTFILE.m Line: 5 Column: 1 
This statement is not inside any function. 
(It follows the END that terminates the definition of the function "bla".) 

間違っているのですか?関数内ではないコードの隣に私自身の関数を使うsciptを実行できませんか?

答えて

1

コードのスタイルは、Pythonでも動作しますが、MATLABでは動作しません。エラーはあなたに回答This statement is not inside any functionを与えています。次の3つの次のソリューションを持っている:

の1-test.mとして

function a=main() 
    a=test(10); 
end 


function y=test(x) 
    y=x*10; 
end 

2 -または関数を保存する(これは同じMファイルである)主な機能を作成し、最後を使用しますか他のスクリプトやコマンドラインから関数を呼び出すことができます。

、3-また、機能(すべて同じM-ファイル内)を入れ子にしていることができます。

function a=main() 
    a=test(10); 

    function y=test(x) 
     y=x*10; 
    end 
end 

非常に便利なドキュメントとサンプルhereを探します。

+0

オプション1が機能していません:入力引数が不十分です。 mytest(行2)のエラー y = x * 10;オプション3は動作しています...出力が表示されないので、 –

+0

ですが、非常に冗長です。出力として 'a'を追加し、必要に応じて入力してください。ここの関数には入力引数はありませんが、あなた自身で追加することができます。 100%は現在のフォームで動作します。 – NKN

+0

それはいつもmatlabのようでしたか?オクターブは私のコードを受け入れ、私はmatlabがしてはならない理由を見ません。理由はありますか? –

関連する問題