作者qqqq99369 (500)
看板MATLAB
标题[讨论] 消除Index exceeds matrix dimension
时间Sun Dec 9 23:42:23 2018
这在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://webptt.com/cn.aspx?n=bbs/MATLAB/M.1544370146.A.E3C.html
※ 编辑: qqqq99369 (101.136.76.109), 12/09/2018 23:46:44
1F:推 sunev: 不要用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:推 sin55688: 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