0
代碼MAX(ABS)
我在MATLAB下面的代碼,我想在一個MEX文件重寫用C(或C++):如何在MATLAB
[a,b] = max(abs(C));
其中,C爲載體,是向量C中所有元素的最大絕對值,b是a的索引。
請任何人都可以幫我解決這個問題嗎?我已經嘗試過使用「abs」函數,但它返回了正整數(但我希望它們在包含小數值的情況下保持雙精度)。提前謝謝了。
您對Matlab代碼所做的描述是錯誤的。如果'C'是一個矩陣,那麼對其應用'max'意味着'a'將是一個行向量,每個元素包含abs(C)'結果對應列的最大值,'b'也將是一個包含'a'中值的索引的向量。 C和C++不是同一種語言,因此請對您使用的內容做出決定。如果你使用過['std :: abs'](http://en.cppreference.com/w/cpp/numeric/math/fabs),你就不會遇到截斷的問題。 – Praetorian
@Praetorian:'std :: abs'也會截斷,如果你#include'也不''包括#include '只需要'std :: fabs'就可以了。 –
感謝@Praetorian的貢獻。我編輯了我的問題以突出顯示C作爲一個向量。因爲mex可以編譯C和C++,所以任何人都可以。 – Amanda