こんにちは、matlab にセル配列があり、セルの長さが異なります。セルの平均の長さを決定する方法を教えてください。
私が試してみました:
mean(length(mycell{:});
ただし、これは平均関数の入力が多すぎます。
ありがとう。
使用するcellfun
mean( cellfun( @length, mycell ) )
ところで、一部の組み込み関数については、次のように記述したほうがよい場合があります。
mean( cellfun( 'length', mycell ) )
cell 配列に行ベクトルのみまたは列ベクトルのみが含まれる場合、 を使用しない代替方法がありますcellfun
。
cell 配列に行ベクトルが含まれている場合: 次のいずれかを使用します。
length([mycell{:}])/numel(mycell)
length(horzcat(mycell{:}))/numel(mycell)
cell 配列に列ベクトルが含まれている場合:
length(vertcat(mycell{:}))/numel(mycell)
セル配列が小さい場合、この回答は@Shaiの回答よりも高速です。中程度または大きいサイズの場合、または一般的な回答として、彼のソリューション (2 番目のバージョン) の方が優れています。