0

こんにちは、matlab にセル配列があり、セルの長さが異なります。セルの平均の長さを決定する方法を教えてください。

私が試してみました:

mean(length(mycell{:});

ただし、これは平均関数の入力が多すぎます。

ありがとう。

4

2 に答える 2

6

使用するcellfun

mean( cellfun( @length, mycell ) )

ところで、一部の組み込み関数については、次のように記述したほうがよい場合があります。

mean( cellfun( 'length', mycell ) )
于 2013-10-06T15:03:31.023 に答える
4

cell 配列に行ベクトルのみまたは列ベクトルのみが含まれる場合、 を使用しない代替方法がありますcellfun

  • cell 配列に行ベクトルが含まれている場合: 次のいずれかを使用します。

    length([mycell{:}])/numel(mycell)

    length(horzcat(mycell{:}))/numel(mycell)

  • cell 配列に列ベクトルが含まれている場合:

    length(vertcat(mycell{:}))/numel(mycell)

セル配列が小さい場合、この回答は@Shaiの回答よりも高速です。中程度または大きいサイズの場合、または一般的な回答として、彼のソリューション (2 番目のバージョン) の方が優れています。

于 2013-10-06T17:31:22.323 に答える