2012-02-18 95 views

回答

3

您可以避开使用匿名帮助函数的语法限制。 EG

oneD = @(x)x(:); 
diff = sum(abs(oneD(a-b)))); 

尽管如此,仍然需要两条线。

+0

我喜欢你的想法。我希望你能说出一个冒号。它可能与冒号操作符冲突! – 2012-02-18 09:22:51

+0

你说得对。使用“冒号”这个名字会导致你无法完成任务。 – Pursuit 2012-02-18 15:14:49

+1

因此,您认为用另一种双线解决方案替换双线解决方案是一个有效的解决方案,并且还可以用匿名解决方案替换简单的冒号运算符! “事情应该尽可能简单,但不要简单。” – Kavka 2012-02-19 04:27:53

3

两个选项:

err = sum(abs(a(:)-b(:))); 

err = sum(abs(reshape(a-b,[],1))); 
1

在这种特殊情况下,你可以做sum(abs(a(:)-b(:))),但一般Matlab的不支持那种嵌套指数。

相关问题