[討論] 消除Index exceeds matrix dimension

看板MATLAB作者 (500)時間6年前 (2018/12/09 23:42), 6年前編輯推噓2(200)
留言2則, 2人參與, 最新討論串1/1
這在GPU上執行的 代碼如下: for i=2:length(A) if A(i,2)==A(i-1,2),continue;end for j=2:length(A) if c(j,2)==A(i,2) c(j,1)=A(j,1); c(j,2)=A(i,2); c(j,3)=A(j,3); else c(j,1)=0; c(j,2)=0; c(j,3)=0; end end c(any(c,2)==0,:)=[]; [xmax,m]=max(c(:,1)); [xmin,n]=min(c(:,1)); D=[(xmax+xmin)/2,c(1,2),(c(m,3)+c(n,3))/2]; D=[(xmax+xmin)/2,c(1,2),(c(m,3)+c(n,3))/2]; [zmax,p]=max(c(:,3)); S=[c(p,1),c(1,2),zmax]; oz=((S(1,1)-xmin)*((S(1,1)+xmin)-2*(D(1,1)+S(1,1))/2)+(zmax+c(n,3))*(zmax-c(n,3)))/(2*(zmax-c(n,3))); O=[(D(1,1)+S(1,1))/2,c(1,2),oz]; r=normest(O-S); r0=[]; OC=O-c; for k=1:length(OC) r0(k,1)=normest(OC(k,:)); end for k=1:length(OC) if r-0.002<r0(k,1)&&r0(k,1)<r+0.002 c(k,:)=0; end end K{i}=c; end 我執行的結果,得到了 Error using gpuArray/subsref Error using gpuArray/subsref Index exceeds matrix dimension. 想請教一下 這問題出在哪?該怎麼修改 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.136.76.109 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1544370146.A.E3C.html ※ 編輯: qqqq99369 (101.136.76.109), 12/09/2018 23:46:44

, , 1F
不要用length,用size(,1)
是把全部的length改成size嗎? 我將全部的length改成size還是一樣的問題 12/09 23:59 ※ 編輯: qqqq99369 (101.136.76.109), 12/10/2018 09:20:27 ※ 編輯: qqqq99369 (101.136.76.109), 12/10/2018 09:27:13

, , 2F
Index exceeds matrix dimension. 有確認過嗎?
後來找到問題所在解決了,感謝大家。 12/10 14:12 ※ 編輯: qqqq99369 (101.136.152.131), 12/10/2018 23:15:12 ※ 編輯: qqqq99369 (101.136.152.131), 12/10/2018 23:55:21
文章代碼(AID): #1S3JVYuy (MATLAB)
文章代碼(AID): #1S3JVYuy (MATLAB)