小弟我想画一个f(x,y,z)的图
x,y,z为3个矩阵
大小分别为
x => 64,1
y => 64,1
z => 57,1
f => 64x64x57,1
f的值就是 当x=1,y=1,z=1 带入以后得出的值
我想要在三维座标上 将f的大小用颜色(colorbar)表示
我试过scatter3(x(:,1),y(:,1),z(:,1),f,f,'filled')
本来想说用surf画 但meshgrid的矩阵也是要同样大小
但他显示我的x,y,z不一样大 而且scatter3画出来是点
我想问看看 是不是有什么方法可以画出f的曲面 然后颜色表示大小?
以下是P大提供的方法 给大家参考
[xx yy]=meshgrid( 64 x 64 ) %将资料做成meshgrid
for n = 1:57
f =f2(:,:,n); %用循环一页一页画
mesh(xx,yy,f);
hold on %叠图
colorbar
drawnow
frame = getframe(1);
im = frame2im(frame);
[imind,cm] = rgb2ind(im,256);
if n == 1;
imwrite(imind,cm,filename,'gif', 'Loopcount',inf);
else
imwrite(imind,cm,filename,'gif','WriteMode','append');
end
end
将z的变化改用叠图的方式 处理出来效果蛮不错的
另外我想问的是 如果我现在x,y,z很大的话 要如何处理
比如 f(x,y,z) 里面的 x y z各是10000的话
这样meshgrid会因为内存问题无法建立
请问有什么方法可以处理这么大的资料量吗?