我在上述变量上运行上述循环:
- A 是一个大小为 mxn 的二维数组。
- mask 是大小为 1xn 的一维逻辑数组
- 结果是大小为 1xn 的一维数组
- B 是 mx1 形式的向量
- C是一个mxm矩阵,m同上。
编辑:将 foo(x) 扩展为函数。
这是代码:
temp = (B.'*C*B);
for k = 1:n
x = A(:,k);
if(mask(k) == 1)
result(k) = (B.'*C*x)^2 / (temp*(x.'*C*x)); %returns scalar
end
end
请注意,我已经成功地将上面的代码用作 parfor 循环而不是 for。我希望你能提出一些使用网格网格或那种产生更好性能改进的方法。我不认为我有 RAM 问题,因此解决方案也可能是昂贵的内存。
非常感谢。