-3

私が入ります:

EDU>> %using the temporary variable levels
EDU>> levels=range/quantise_range;
levels=round(levels);
quantisation_bits=log2(levels)

注意。x 変数はどこにもありません

私のエラーは次のとおりです。

??? Input argument "x" is undefined.

Error in ==> range at 18
    y = max(x) - min(x);

EDU>> %combining above process into one statement
quantisation_bits=log2(round(range/quantise_range));
??? Input argument "x" is undefined.

Error in ==> range at 18
    y = max(x) - min(x);

誰かがこの問題を説明してくれませんか? 私はプログラミングの初心者で、エラー ヒントの読み方がよくわかりません。

ありがとう。

さらに、私の側の同じ原則の誤解が原因である可能性があるため、ここでこのコードに問題があり、エラーも含まれています。

%Trying to create my own function, I'm press Shift+Enter at the end of 行端:

EDU>> function what_am_i()
disp 'I am a function'
??? function what_am_i()
    |
Error: Function definitions are not
permitted in this context.

EDU>> 
function what_am_i()
disp' I am a function'
??? function what_am_i()    
    |
Error: Function definitions are not
permitted in this context.

EDU>> end
??? end
    |
Error: Illegal use of reserved keyword
"end".
4

2 に答える 2

2

コマンドウィンドウでの関数定義に関する@ user1860611の回答に加えて、組み込み関数であるrangeに関係する他の問題があります。変数名として使用しようとしているようですがrange、実際には値に初期化していないため、まだ関数です。

ここの行で:

levels=range/quantise_range;

基本的に関数を呼び出していますがrange、引数を渡していません。

Error in ==> range at 18
y = max(x) - min(x);

エラー メッセージは、呼び出された関数rangeがエラーを生成したことを示しています。x関数には内部に変数があるため、 という名前の変数がなくてもかまいません。

于 2013-01-22T03:59:05.903 に答える
2

「コマンド ウィンドウ」と「エディタ」を混同している可能性があります。「コマンド ウィンドウ」では、数行のコードを入力できますが、関数を作成することはできません。電卓のように機能します。

ファイルを作成して保存する場合は、「エディター」でそれらを開くと、Matlab がプログラミング言語のように動作し始めます。.m関数やアルゴリズムを記述できるファイルを保存します。

Matlab には多くのヘルプが用意されています。彼らのウェブサイトにアクセスして、少し調べてみることをお勧めします。(または単に「matlab の紹介」をググってください)

于 2013-01-21T23:55:20.370 に答える