2
我有一個C++ DLL,我使用calllib
從Matlab代碼調用。我沒有任何問題調用一個只有輸入參數的C++函數,或者返回mxArray
的函數。如何用Matlab的多個輸出調用C++函數?
現在我無法調用具有多個輸出參數的函數。比方說,我需要這個Matlab函數的C++等價物,它返回一個矩陣和一個整數。
function [matrix, status] = foo()
status = 42;
matrix = ones(3,2);
end
不管我試過了,這讓Matlab的崩潰,例如:
DLL_API void foo(mxArray* iop_matrix, int* op_status)
{
mxSetM(iop_matrix, 3);
mxSetN(iop_matrix, 2);
*op_status = 42;
}
但是我可以很容易得到時,我只需要一個輸出參數
DLL_API mxArray* foo(void)
{
return mxCreateNumericMatrix(3, 2, mxDOUBLE_CLASS, mxREAL);
}
什麼是它的工作C++中這些函數的正確實現?