Can anyone help me to understand the logic of below code

1 次查看(过去 30 天)
Xb=Xm; Yb=Ym; Zb=Zm; % Boundary Points
Xf=[];Yf=[];Zf=[];
for z=min(Zb):1:max(Zb)+0.5
x1=Xb(abs(Zb-z)<0.01);y1=Yb(abs(Zb-z)<0.01);z1=Zb(abs(Zb-z)<0.01);
for y=min(y1):1:max(y1)+0.5
x2=x1(abs(y1-y)<0.01);y2=y1(abs(y1-y)<0.01);z2=z1(abs(y1-y)<0.01);
xf=x2(abs(x2-min(x2))<0.01); yf=y2(abs(x2-min(x2))<0.01);zf=z2(abs(x2-min(x2))<0.01);
Xf=[Xf;xf];Yf=[Yf;yf];Zf=[Zf;zf];
end
end
range of Xb = 12.75 to 26.75
range of Yb = -10 to 10
range of Zb = -10 to 10
  6 个评论
VANDANA GUPTA
VANDANA GUPTA 2019-7-1
编辑:Guillaume 2019-7-1
sir, i want to understand this portion of this code:
% find the points in the front surface
for z=min(Zb):1:max(Zb)+0.5
x1=Xb(abs(Zb-z)<0.01);
y1=Yb(abs(Zb-z)<0.01);
z1=Zb(abs(Zb-z)<0.01);
for y=min(y1):1:max(y1)+0.5
x2=x1(abs(y1-y)<0.01);
y2=y1(abs(y1-y)<0.01);
z2=z1(abs(y1-y)<0.01);
xf=x2(abs(x2-min(x2))<0.01);
yf=y2(abs(x2-min(x2))<0.01);
zf=z2(abs(x2-min(x2))<0.01);
Xf=[Xf; xf]; Yf=[Yf; yf]; Zf=[Zf; zf];
end
end
Guillaume
Guillaume 2019-7-1
It calculates some stuff. Now, since you still haven't told us what the overall purpose of the code is, I doubt anybody is going to bother looking any deeper. Well written code would have comment explaining what the variables are (and have better variable names) and comments explaining what's going on. This hasn't
I suggest that if you need help understanding the code, you ask whoever wrote it.
Oh, and please use the toolbar to format the code as code. It's the insert_code_16.png button.

请先登录,再进行评论。

回答(1 个)

Jan
Jan 2019-7-1
Start with a simplification of the code to make it easier to read:
% find the points in the front surface
for z = min(Zb):max(Zb) + 0.5
% Get x, y, z values of points near to Zb==z:
index = (abs(Zb - z) < 0.01);
x1 = Xb(index);
y1 = Yb(index);
z1 = Zb(index);
for y = min(y1):max(y1) + 0.5
% Get x1, y1, z1 values of points near to y1==y:
index = (abs(y1-y) < 0.01);
x2 = x1(index);
y2 = y1(index);
z2 = z1(index);
% Get x2, y2, z2 values of points near to y2==min(x2):
index = (abs(x2-min(x2)) < 0.01);
xf = x2(index);
yf = y2(index);
zf = z2(index);
% Collect the xf, yf, zf values:
Xf = [Xf; xf];
Yf = [Yf; yf];
Zf = [Zf; zf];
end
end
  2 个评论
VANDANA GUPTA
VANDANA GUPTA 2019-7-8
ok, sir.......sir in the code of front surface, is vector size reduced of Xb,Yb and Zb upto x2, y2 and z2....and in xf, yf and zf, surface is getting
Jan
Jan 2019-7-8
@VANDANA GUPTA: So do you have a specific question about the code?

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Convert Image Type 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by