查看: 113|回复: 2|关注: 0

[未答复] MATLAB程序存在几点问题,请各位大神指教

[复制链接]

新手

12 麦片

财富积分


050


2

主题

14

帖子

0

最佳答案
发表于 2020-5-23 11:30:36 | 显示全部楼层 |阅读模式
现在存在的问题主要有:1.怎样给dr直接在程序里加39列0(我是用笨办法直接在数据表格里加了39列0),
2.另外图片里运行出来多出来一块没有闭合是怎么回事?
3.我把三千组数据全部导入出的图几乎全黑,复制图形的时候偶就出现错误提示:
    错误使用 print>LocalPrint (line 291)
    使用 Painter 渲染时内存不足 - 请尝试使用 ZBuffer,这个应该怎么办?
4.如果能加一条命令输出圆筒上各点坐标更好

代码如下:
data=xlsread('C:\Users\Administrator\Documents\MATLAB\testdata.xlsx');%由于数据需要保密,我只截取了一部分数据放过在附件里(加了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

                               
登录/注册后可看大图


testdata.xlsx

11.49 KB, 下载次数: 1

回复主题 已获打赏: 0 积分

举报

新手

12 麦片

财富积分


050


2

主题

14

帖子

0

最佳答案
 楼主| 发表于 2020-5-23 12:05:39 | 显示全部楼层
不闭合问题已解决,应该是给dr加39列壁厚,其余问题请各位大神指教
回复此楼 已获打赏: 0 积分

举报

新手

12 麦片

财富积分


050


2

主题

14

帖子

0

最佳答案
 楼主| 发表于 2020-5-25 22:59:38 | 显示全部楼层
别沉,求大神帮忙看看
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表