2012-02-18 60 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的不支持那種嵌套指數。

相關問題