再求助一次,搞了一天还是没搞出来,有大神能帮忙解决吗:'(:'(: ,现在存在的问题主要有:1.怎样给dr直接在程序里加39列0(我是用笨办法直接在数据表格里加了39列0),
2.另外图片里运行出来多出来一块没有闭合是怎么回事?3.我把三千组数据全部导入结果出现错误提示:
错误使用 print>LocalPrint (line 291)
使用 Painter 渲染时内存不足 - 请尝试使用 ZBuffer,这个应该怎么办?
代码如下:
data=xlsread('C:\Users\Administrator\Documents\MATLAB\testdata.xlsx');%由于数据需要保密,我只截取了一部分数据放过在附件里(加了39列0),没有加39列0的数据在一楼
z=data(:,2);
dr=data(:,3:42);
r=1/2*data(:,43:end);
c=[0,0];
azi=0;%azimuth方位角
N=size(r,2);
N1=2*N;
daziN1 = linspace(azi,2*pi+azi,N1);
r1_in=[r,r];
r1_out=r1_in+dr;
[x1_in,y1_in,z1_in]=getxyzByRadius(z,c,daziN1,r1_in);%% 调用函数,将圆心,半径数据转换成xyz
[x1_out,y1_out,z1_out]=getxyzByRadius(z,c,daziN1,r1_out);
figure%% 绘图
surf(x1_in,y1_in,z1_in,'FaceAlpha',0.7,'FaceColor','y')
hold on
surf(x1_out,y1_out,z1_out,'FaceAlpha',0.4,'FaceColor','b')
axis square
%函数
function [x,y,z]=getxyzByRadius(z0,c0,dazi,r);
for i=1:length(z0)
for j=1:length(dazi)
x(i,j)=c0(1)+sin(dazi(j))*r(i,j);
y(i,j)=c0(1)+cos(dazi(j))*r(i,j);
z(i,j)=z0(i);
end
end
end
2020-5-21 21:59 上传
点击文件名下载附件
11.64 KB, 下载次数: 0