0

如果 A 是一个包含 100 个 50x50 矩阵的单元阵列,并且我想从该单元阵列中每个矩阵的每一列中计算一个特定元素 N,那么我该如何在 matlab 中做到这一点?

4

2 回答 2

1

利用cellfun

>> count = cellfun( @(x) sum( x == N, 1 ), A, 'UniformOutput', 0 );

count是一个包含 100 个 1×50 向量的元胞数组:count{3}(5)是等于Nthirs 矩阵第 5 列的元素数A

于 2013-10-13T10:53:59.990 回答
0

对于一般情况,@Shai 的答案是要走的路。但是,由于在这种情况下所有矩阵都具有相同的大小,因此您可以通过将它们存储在 3D 数组而不是元胞数组中来节省时间。也就是说,定义A大小为 50x50x100 的数组,即A(:,:,1)第一个矩阵,A(:,:,2)第二个,依此类推。然后

count = squeeze(sum(A==N)).';

wherecount(3,5)被解释为@Shai 的答案

于 2013-10-13T14:39:19.613 回答