我有一个矩阵,例如“A”,大小为5 * n,其中“n”是一个大数字。我想将函数应用于“A”列,是for
循环最佳解决方案吗?
具体而言,假设
A = randn(5, 10000);
B = randn(5, 5000);
ix = cell(1, 10000);
for i =1:10000
n = poissrnd(5);
ix{i} = datasample(1:5000, n, 'replace', false);
end
我想做以下事情:
for i = 1:10000
A(:, i) = B(:, ix{i}) * B(:, ix{i})' * A(:,i);
end
此示例中的函数仅为B(:, ix{i}) * B(:, ix{i})'
,而“ix”是作为索引的向量的单元格,例如,“ix {i}”可以是[1, 3, 11, 20]
。