2

そのため、現在書いているコードには多くのセル操作があり、2 つの引数のセル関数を使用すると非常に役立ちます (たとえば、同じサイズのセルで配列を連結する場合)。ただし、MatLab は複数入力の cellfun 呼び出しの単純な使用に対しても混乱を招くような反応を示しているため、何が間違っているのかを突き止めたいと思います (MatLab 関数リファレンスに従っているだけなので)。例えば、

B = {[1 2;3 4] , [5 6;7 8]}
cellfun(mtimes,B,B)

戻り値

??? Error using ==> mtimes
Not enough input arguments.

実際、入力すると同じメッセージが返されます

cellfun(mtimes,B)

また

cellfun(mtimes,B,B,B,B)

ヘルプ?

4

1 に答える 1

2

MATLAB CELLFUN のドキュメントによると、 CELLFUNの最初の引数は、関数の「生の」名前だけでなく、関数ハンドルでなければなりません。だから、このようなもの...

B = {[1 2;3 4] , [5 6;7 8]}
cellfun(@mtimes,B,B)

(2 行目の mtimes の前にある @ 記号に注意してください)。

「生の」mtimes を入れることにより、MATLAB は関数 MTIMES を引数なしで評価し、その結果を CELLFUN の最初の引数として使用しようとします 。しかし、エラー メッセージが示すように、MTIMES が引数なしで動作するのはエラーです。

代わりに、@mtimes を使用して、MTIMES 関数を「指す」関数ハンドルを意味します。

于 2013-08-04T03:30:29.713 に答える