Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 在3D中绘制圆_Matlab_3d_Plot - Fatal编程技术网

Matlab 在3D中绘制圆

Matlab 在3D中绘制圆,matlab,3d,plot,Matlab,3d,Plot,基本上我想做一个100个不同半径的圆的3D绘图,每个圆在一个新的高度平面(h)上。每个圆的半径增加(不断增加),h不断增加 我的代码的问题是,我绘制了100*100个圆,而不是像预期的那样仅绘制100个圆 for r=1:1:100 t=linspace(0,2*pi); x=r*cos(t); y=r*sin(t); for h=100:100:10000 z=h * ones(1, length(t)); p

基本上我想做一个100个不同半径的圆的3D绘图,每个圆在一个新的高度平面(h)上。每个圆的半径增加(不断增加),h不断增加

我的代码的问题是,我绘制了100*100个圆,而不是像预期的那样仅绘制100个圆

for r=1:1:100              
    t=linspace(0,2*pi);    
    x=r*cos(t);
    y=r*sin(t);
    for h=100:100:10000
    z=h * ones(1, length(t));
    plot3(x,y,z);
    if r == 1 && h == 100
        hold on;
        % Enlarge figure to full screen.
        set(gcf, 'units','normalized','outerposition',[0 0 1 1]);
    end
    drawnow;
end

结束

你有一个循环在另一个循环中,每个循环有100次迭代,因此你将以
100*100
的东西结束

我建议您删除内部循环,即以h=100:100:10000开头的循环,并替换该语句

z=h * ones(1, length(t));


如果我正确理解了您的代码,这可能是您应该做的。

谢谢。看来只要改变一下陈述就足够了。但是,执行速度非常慢。我将尝试在删除内部循环时执行是否会加快。我感谢你的帮助!如果你只是按照我的建议改变陈述,你应该得到你想要的结果。那么
h
循环的目的是什么呢?实际上没有。因此,在大多数情况下,MATLAB速度慢的问题是代码问题?如果您将h=100:100:10000留在循环中,并按照我的建议更改代码,那么您的程序将计算相同的结果100次。我不确定是否可以从中得出这样的结论,即Matlab速度慢。我理解,当然最好去掉内部循环。
z = 100 * r * ones(1, length(t));