程序如下,其中t(i)是结构体变量,xii,yii,zii都是有243200个分量的向量,分别代表x,y,z坐标。程序的目的是如果有同一k值的xii,yii,zii与t(i)的坐标相差在规定范围内,就用t(i)的分量代替。此程序要运行三天三夜才出结果,求高手优化一下,感激不尽(我把第二个for改成k=1:243200;速度是快了,但结果不对)
for i=1:185998
for k=1:243200
if abs(t(i).x-xii(k))<=75 & abs(t(i).y-yii(k))<=75 & abs(t(i).z-zii(k))<=40
xii(k)=t(i).nx0;
yii(k)=t(i).ny0;
zii(k)=t(i).nz0;
continue
end
end
end
谢谢你的热心解答,我直接把算法的思路修改了一下,程序如下:
for k=1:243200
[C,I]=min((xii(k)-t.x).^2+(yii(k)-t.y).^2+(zii(k)-t.z).^2);
xii(k)=t(I).nx0;
yii(k)=t(I).ny0;
zii(k)=t(I).nz0;
end
其中t是结构体变量,但是运行结果出现错误,显示为??? Error using ==> minus
Too many input arguments.
t.x是1x189599的向量,不会是因为这个t.x太大了吧?