我有一個名爲test(test.m)的函數,我想在Matlab 2013b中使用codegen將其轉換爲mex文件。 這裏B是一個包含零矩陣p_z(大小128 * 128)和plastset是空矩陣(0 * 0)的結構。 我得到一個錯誤轉換下面的代碼: 除非'行'被指定,輸入必須是矢量。對於可變大小的輸入,對於行 'actset = setxor(actset,plastset);'第一維或第二維必須具有恆定的長度1'在下面提到的代碼Error在Matlab 2013中使用Matlab codegen創建mex文件
請幫我糾正成功創建下面的函數成mex文件的代碼。
function [] = test(B)
p_z = B.p_z;
plastset = B.plastset;
if isempty(B.plastset)
plastset = zeros(1,0);
end
if isempty(find(p_z > 0, 1))
actset = zeros(1,0);
else
actset = find(p_z > 0);
actset = setxor (actset , plastset);
end
我缺少codegen,但文檔提示您必須通過-args開關指定參數的類型。 [http://www.mathworks.de/matlabcentral/answers/19303-what-does-this-error-message-mean-no-class-precondition-specified-for-input-x-of-function-squa]( mathworks支持線程)。 – Trilarion