Nr=39; Ny=22000; t=linspace(0,39,Nr)'; t1=linspace(0,110,Ny)'; x=zeros(Ny,Nr); z=zeros(Ny,Nr); y=zeros(Ny,Nr); for i=1:Ny y(i,:) = t; if i>0 && i<=17*200 z(i,:) = 0; elseif i>17*200 && i<=45*200 z(i,:) = (4/7*t - 9.7); elseif i>45*200 && i<=65*200 z(i,:) = 16; elseif i>65*200 && i<=93*200 z(i,:) = (-4/7*t + 53.1); elseif i>93*200 && i<=110*200 z(i,:) = 0; end end for j=1:Nr x(:,j)=t1; z_shifted(:,j) = repmat(z, length(y), 1) + repmat(y', 1, length(x)); end V=d2; c=zeros(Nr,Ny); for j = 1:Nr for i = 1:Ny c(j,i) = V((j-1)*(length(x))+i); end end c=c'; h=surf(x,y,z,z_shifted,c); set(h,'edgecolor','none'); xlabel('x/mm'); ylabel('y/mm'); zlabel('z/mm');有什么错误
时间: 2024-01-31 17:04:11 浏览: 108
在代码中,变量z_shifted在使用之前未被定义,需要在循环前添加z_shifted=zeros(Ny,Nr)来定义该变量。另外,在surf函数中,第三个参数z应该为z_shifted而不是z。以下是修改后的代码:
```
Nr=39;
Ny=22000;
t=linspace(0,39,Nr)';
t1=linspace(0,110,Ny)';
x=zeros(Ny,Nr);
z=zeros(Ny,Nr);
y=zeros(Ny,Nr);
z_shifted=zeros(Ny,Nr); %添加定义z_shifted
for i=1:Ny
y(i,:) = t;
if i>0 && i<=17*200
z(i,:) = 0;
elseif i>17*200 && i<=45*200
z(i,:) = (4/7*t - 9.7);
elseif i>45*200 && i<=65*200
z(i,:) = 16;
elseif i>65*200 && i<=93*200
z(i,:) = (-4/7*t + 53.1);
elseif i>93*200 && i<=110*200
z(i,:) = 0;
end
end
for j=1:Nr
x(:,j)=t1;
z_shifted(:,j) = repmat(z(:,j), length(y), 1) + repmat(y(:,j)', length(z(:,j)), 1); %计算z_shifted
end
V=d2;
c=zeros(Nr,Ny);
for j = 1:Nr
for i = 1:Ny
c(j,i) = V((j-1)*(length(x))+i);
end
end
c=c';
h=surf(x,y,z_shifted,c); %修正surf函数中的第三个参数
set(h,'edgecolor','none');
xlabel('x/mm');
ylabel('y/mm');
zlabel('z/mm');
```
阅读全文
相关推荐


















