Mean of a cell array with different cell sizes?
1 次查看(过去 30 天)
显示 更早的评论
Mean of a cell array with different cell sizes?
% This works:
a = {[1 3 4 5];[7 7 8 2];[5 4 1 9]}
mean(cell2mat(a),2)
% but this does not work:
a = {[1 3 4 5];[7 7 8 2];[5 4 1]}
mean(cell2mat(a),2)
0 个评论
采纳的回答
Dyuman Joshi
2023-11-28
If the data in the cell array is compatible for concatenation, concatenate them and use mean for the specific dimension -
a = {[1 3 4 5];[7 7 8 2];[5 4 1 9]}
b = cat(1,a{:})
m = mean(b, 2)
If the data in the cell array is not compatible for concatenation, the best approach would be to pre-allocate the output and use a for loop. You could use cellfun() but that is just a for loop in disguise.
6 个评论
Dyuman Joshi
2023-11-28
@Sim, Using the name-argument pair will give the output as a cell array.
a = {[1 3 4 5];[7 7 8 2];[5 4 1]}
cellfun(@mean,a)
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!