1

より大きな配列を作成する以外に、関数 Foo を複数の配列 (行列) A、B、C に適用する簡単な方法はありますか?

基本的に、次のような Python の「マップ」に似たものが必要です。

L = [A、B、C]
map(foo, L)

1. 関数 Foo がコンポーネント単位で適用され、log()、exp() などの行列の次元を変更しないと仮定します。2. 関数は一般的な関数で、行列全体に作用します。たとえば、removerows() です。

4

2 に答える 2

1

デフォルトでは、MATLAB には「マップ」に類似したものは組み込まれていません。ただし、いつでも自分で機能を作成できます。それはここで行われました。MATLAB ビンに入れれば、準備完了です。

ただし、システム間でコードを移植できるようにしたい場合は、単純なループをお勧めします。

于 2013-03-02T16:28:14.677 に答える
0

とを使用vararginvarargoutて、任意の数の入力を受け取り、任意の数の出力を生成する関数を作成できます。

したがって、次のように書くことができます。

[D, E, F] = map(foo, A, B, C);
于 2013-03-02T16:22:12.057 に答える