Eli*_*s4l 5 variables matlab plot
我正在尝试一个关于使用 fsurf 的示例,该示例使用此步骤中的代码(使用 Matlab 绘制由平面包围的圆柱体)。
\n当我更改声明的 syms 变量的名称时,问题就出现了,图表的输出完全改变了,我不\xc2\xb4t真正理解这一点。\n这是使用原始代码的输出:
\nsymObj = syms;\ncellfun(@clear,symObj)\nclear all \nclose all\nsyms r t u\nfsurf(cos(r),sin(r),u*(cos(r)+2),[0,2*pi,0,1])\nhold on\nfsurf(r*cos(t),r*sin(t),r*cos(t)+2,[0,1,0,2*pi],\'FaceColor\',\'r\')\nrotate3d on\nRun Code Online (Sandbox Code Playgroud)\n\n这是同一个示例,其中我仅将声明变量中的变量名称“t”更改为“phi”以及使用它的三个位置:
\nsymObj = syms;\ncellfun(@clear,symObj)\nclear all \nclose all\nsyms r phi u\nfsurf(cos(r),sin(r),u*(cos(r)+2),[0,2*pi,0,1])\nhold on\nfsurf(r*cos(phi),r*sin(phi),r*cos(phi)+2,[0,1,0,2*pi],\'FaceColor\',\'r\')\nrotate3d on\nRun Code Online (Sandbox Code Playgroud)\n\n
    我目前没有安装符号工具箱来测试这一点,但我认为这就是问题所在:fsurf给出两个间隔来绘制为单个向量:[0,1,0,2*pi]。一个变量的范围是 0 到 1,另一个变量的范围是 0 到 2 pi。但是每个区间会给出哪个变量呢?
由于函数调用中没有明确的变量排序,因此所fsurf能做的就是按字母顺序对它们进行排序。通常人们使用 x 和 y,或者 u 和 v,它们按字母顺序排序。请注意,您最初声明变量的顺序不会记录在 MATLAB 中的任何位置,只能通过检查运行来声明这些变量的源代码来恢复此信息。fsurf\xe2\x80\x99 肯定不知道你思考这些变量的顺序。
第一个代码使用变量 r 和 t,第二个代码使用 phi 和 r。如果我的猜测是正确的,那么交换间隔数组中两个间隔的顺序应该可以解决您的问题。
\n|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           106 次  |  
        
|   最近记录:  |