2012-02-27 9 views
4

一部の関数では、Matlab Coderで実行する場合、入力を定数にする必要があります。 私はそれが問題となる状況のための一例として、入力する前に定数として入力を宣言するための方法を見つけることを望む:定数とMatlabコーダ

function foo = subsubfunction(x,y)    
     [B,A]=butter(1,x/y); 

これは

「すべての入力は定数でなければなりません」というエラー を返します。

xとyを定数として宣言して、butter()がうまくいくようにするにはどうすればよいですか?私は多くのソリューションを試してみましたが、残念ながら本当に満足できるものは見つかりませんでした。コマンドライン操作coder.newtype('constant',x)を使用できれば、すべてを簡素化できます。

+0

あなたは実際には定数またはただ1つの値を意味し、ベクトル/配列ではありませんか?あなたは 'numel'関数を使うことができます... – Smash

+0

こんにちは、ありがとう!しかし、この問題を解決するために 'numel 'を使うことがどういう意味ですか?どのように入力が一定であることを確認しますか? –

答えて

2

関数内にcoder.constを使用すると、関数butterは定数入力を渡していることがわかります。資料はhereです。

function foo = subsubfunction(x,y)    
    [B,A]=coder.const(@butter,1,x/y); 

:あなたが生成されたコードでx/yの値を変更することはできません。 xyを個別に変更できますが、2つの数値の比率は変更できません。

+0

あなたが参照するドキュメントにはログインが必要です。これが似ているかどうかを確認し、リンクの更新を検討してください:http://www.mathworks.nl/help/simulink/slref/coder.const.html –

+0

ありがとう@DennisJaheruddin。リンクを更新しました! –