1

初心者の質問で申し訳ありませんが、私は MATLAB の初心者です。次のタスクを実行する必要がありますが、行き詰まっています。「3 つの引数 x、a、b を受け取る関数を作成します。ここで、x は行列で、a と b はスカラーです。この関数は、区間 [a, b] にある x の要素の数を返します。」これが私がこれまでに持っているものです。

function y = count(x,a,b);
for value=a:b
    length(value)
end

次の行を使用して、コマンド プロンプトで関数を呼び出す必要があります。

count(randn(20, 20), 0, 5)

しかし、私は正しい答えに近いものを得ていません。誰かが私を正しい方向に向けることができますか? ありがとうございました。

4

1 に答える 1

3

Jonas が提案したようnnzに、 とsumは よりも高速なオプションでありnumel(find(...))sum最速であるため、次のようになります。

function y = count(x,a,b);
y = sum(x(:)>a & x(:)<b);
于 2013-01-20T23:20:02.017 に答える