您好我有以下手机操作:
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);
答案 0 :(得分:1)
好的,基于下面的长篇讨论,我现在已经掌握了你的问题。 供将来参考:提供更多上下文/细节可以防止此类讨论。
无论如何,试试这个:
b = cellfun(@(x) nansum(...
mag.* subsref(cross(u{1},x), struct('type', '()', 'subs', {':',':',3})) ),...
r, 'UniformOutput',false);
不是最漂亮的解决方案,但它可以满足您的要求。