关于matlab画球、裁球、上色的问题这段代码是画一个裁开的球面,我看不太懂,[x,y,z]=sphere(20); z1=z;z1(:,1:4)=NaN; %这句不懂,为什么删掉z1的1至4列就可以得到这样的结果?c1=ones(size(z1)); %这句不懂
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/05 22:06:16
关于matlab画球、裁球、上色的问题这段代码是画一个裁开的球面,我看不太懂,[x,y,z]=sphere(20); z1=z;z1(:,1:4)=NaN; %这句不懂,为什么删掉z1的1至4列就可以得到这样的结果?c1=ones(size(z1)); %这句不懂
关于matlab画球、裁球、上色的问题
这段代码是画一个裁开的球面,我看不太懂,
[x,y,z]=sphere(20);
z1=z;
z1(:,1:4)=NaN; %这句不懂,为什么删掉z1的1至4列就可以得到这样的结果?
c1=ones(size(z1)); %这句不懂,为什么c1要和z1的维数一样?为什么全取1画出来就是绿色?到底什么原理?
surf(3*x,3*y,3*z1,c1);
希望网友认真解答菜鸟提问~
关于matlab画球、裁球、上色的问题这段代码是画一个裁开的球面,我看不太懂,[x,y,z]=sphere(20); z1=z;z1(:,1:4)=NaN; %这句不懂,为什么删掉z1的1至4列就可以得到这样的结果?c1=ones(size(z1)); %这句不懂
NaN是Not a Number的缩写,在matlab绘图时nan数据点会被忽略掉,所以不会画出来.
c1是颜色参量,取值1对应绿色.
[x,y,z]=sphere(20);
z1=z;
z1(:,1:4)=NaN; %非数,绘图时不绘制nan数据
c1=ones(size(z1)); %每个数据点都需要一个颜色参量,如果取不同值,就会发现球上的小面颜色不一样
surf(3*x,3*y,3*z1,c1); %前三个参数为X,Y,Z分量,C为颜色参量
colorbar %加上颜色条,可以看出 绿色对应的取值为1