循环产生的重复价值

1 view (last 30 days)
这是我代码的一小部分。我在这里使用一个PARFOR循环,这是我的项目所需的。
有60种不同类型的角度。但是,在我的以下代码中,采用所有60种类型的角度,它仅取1角(第60个POISTION角度)。结果,我只获得了一个“ A”的值,并且对Npixels的大小进行了重复,这是错误的。有人可以帮助我解决这个问题吗?
如果您运行代码并查看:“电线”变量,则会发现“ A”在NPIXEL的大小上重复。
代码::::::
nangles = 60;总角度%
NVOXEL = 64^3;
npixels = 256*256;
Startphi = 0;
endphi = 354;
ZS = 1100;
ZD = -400;
FOV = 460;
xv = fov/2;
yv = fov/2;
zv = fov/2;
nx = nthroot(nvoxels,3);
ny = nthroot(nvoxels,3);
nz = nthroot(nvoxels,3);
d = fov/nx;
dz = d;
theta = deg2rad(90);
phi = deg2rad(linspace(startphi,endphi,nangles));
b = [xv+(-1)。*zs。*sin(theta),yv,zv+zs。
kai = repmat(b(:,1),npixels,1);
Shai = repmat(B(:,2),Npixels,1);
g = repmat(b(:,3),npixels,1);
sourcecords = [kai,shai,g];
%% 测试
Intersectionpts_global = zeros((Npixels),4);
theta = deg2rad(90);
phi = deg2rad(linspace(startphi,endphi,nangles));
为了k = 1:nangles
phi = phi(k);
parfori = 1:Npixels
kai = kai(i);
shai = shai(i);
g = g(我);
a =(zd+zv。*cos(phi+theta)+( - 1)。*xv。*sin(phi+theta))。1)。*xv。*sin(phi+theta))。^( - 1)。phi+theta));
b = 0;
c=0;
Interpts_global = [a,b,c,ones(长度(a),1)];
Intersectionpts_global(i,:) = Interpts_global;
结尾
绳索=挤压(crotsectionpts_global(:,1:3));
结尾

接受的答案

雷蒙德·诺里斯(Raymond Norris)
请编辑您的帖子,以使您的代码在 CODE 模式。
这不是一个 parfor 问题,您也将获得相同的结果。只是要清楚,应该
电线=
电线(:,:,k)=

更多答案(0)

社区寻宝

在Matlab Central中找到宝藏,发现社区如何为您提供帮助!

开始狩猎!