再求助一次,搞了一天还是没搞出来,有大神能帮忙解决吗:'(:'(: ,现在存在的问题主要有: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

5724a1379ceb16a514510c7aa4f77048.gif

2020-5-21 21:59 上传

点击文件名下载附件

11.64 KB, 下载次数: 0

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐