如何用matlab画圆环,利用内外径画圆环

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值