matlab:cellfun中的乘法



嗨,我有以下cellfun操作:

b = cellfun(@(x) nansum(cross(u{1},x)),r,'UniformOutput',false);

其中u和r是向量。我想把叉积的结果乘以一个叫做I的标量,但它必须在求和的内部。我能简单地做吗:

b = cellfun(@(x) nansum(I.*cross(u{1},x)),r,'UniformOutput',false);

这行得通吗?

事实上,只是尝试了一下,得到了:

Matrix dimensions must agree.
Error in ==> cellcross>@(x)nansum(mag.*cross(u{1},x)) at 2
    b = cellfun(@(x) nansum(mag.*cross(u{1},x)),r,'UniformOutput',false);
Error in ==> cellcross at 2
    b = cellfun(@(x) nansum(mag.*cross(u{1},x)),r,'UniformOutput',false);

有什么建议吗?

更新:

b = cellfun(@(x) nansum(bsxfun(@times, mag(:),cross(u{1},x))),r,'UniformOutput',false);

好的,基于下面的长时间讨论,我现在掌握了您的问题。供将来参考:提供更多的上下文/细节可以防止此类讨论。

无论如何,试试这个:

b = cellfun(@(x) nansum(...
    mag.* subsref(cross(u{1},x), struct('type', '()', 'subs', {':',':',3})) ),...
    r, 'UniformOutput',false);

这不是最漂亮的解决方案,但它能满足你的要求。

相关内容

  • 没有找到相关文章

最新更新