[英]Error with mex file … …Index exceeds matrix dimensions. Index value 3 exceeds valid range [1-2] of array gesgroup
我有一個功能文件到mex文件。 但是在運行mex文件時出現錯誤。 以下是代碼。
在代碼中,我初始化了3個名為group,horgroup,gesgroup的向量,並將gesgroup聲明為varsize。
group = zeros(1,2);
horgroup = zeros(1,2);
gesgroup = zeros(1,2);
coder.varsize('gesgroup');
在幾行中,group和horgroup被計算為大小為(1 * 2)的數組,說group = [1 2]和horgroup = [3 4]之后,我需要使用以下方法將group和horgroup合並到gesgroup中:
gesgroup = [group, horgroup];
gesgroup(gesgroup==0) = NaN;
該代碼在生成mex文件時沒有給出任何錯誤,但是當我在運行mex文件時,在以上兩行中給出了錯誤,即“索引超出了矩陣尺寸。索引值3超出了gesgroup數組的有效范圍[1-2]”
讓我知道是否需要更改代碼中的任何內容並再次生成mex文件。
問題在於初始化gesgroup
的初始化大小為1x2,但該行
gesgroup = [group, horgroup];
將其設置為1x4(因為group和horgroup均為1x2),則需要將其初始化為或可變大小
例如
gesgroup = zeros(1,4);
要么
coder.varsize('gesgroup')
我認為問題已經發生,因為在coder.varsize('gesgroup')
之前已確定大小,因此數組已經是固定大小
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.