本文主要是介绍MATLAB实现三维温度场的动态显示问题:无法从 struct 转换为 double,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
MATLAB三维温度场动态显示&问题:无法从 struct 转换为 double
- 动态显示
- 具体代码
- 问题的解决
- 我计算机环境
- 参考网址
更新于2021年4月21日
动态显示
在百度知道上,找到一个MATLAB能直接跑的代码。
具体代码
// An highlighted block
var foo = 'bar';
[X, Y, Z]=peaks(50); %创建山峰图形数据
surfl(X, Y, Z) %绘制带光照的表面
axis([-10 10 -10 10 -10 10]) %限制绘图范围
axis vis3d off %三维坐标修正,关闭坐标轴箭头
axis equal %等比例显示三维坐标
shading interp %加个影子美化
colormap(copper) %着色为铜色
movie(m) %把刚才存到m里的图像连续播放一遍
这是我仿真编写的,却出现问题。
figure(1);
xs = 0:a/20:a;
ys = 0:b/20:b;
zs = 0:c/20:c;
for i=1:n %h= slice(x,y,z,Theta_movie(:,:,:,i),xs,ys,zs);axis offset(h,'FaceColor','interp','EdgeColor','none');camproj perspective;box on;view(-49,-41);colorbar;m(i)=getframe;
end
movie(m,10,2); %以每秒2帧动态显示,循环10次
出现问题:**无法从 struct 转换为 double。**如下图所示
问题的解决
增加一个“mioivein”函数
figure(1);
xs = 0:a/20:a;
ys = 0:b/20:b;
zs = 0:c/20:c;
m=moviein(n); %n可以随便设置一个正整数
for i=1:n %h= slice(x,y,z,Theta_movie(:,:,:,i),xs,ys,zs);axis offset(h,'FaceColor','interp','EdgeColor','none');camproj perspective;box on;view(-49,-41);colorbar;m(i)=getframe;
end
movie(m,10,2); %以每秒2帧动态显示,循环10次
问题的得到解决。
我计算机环境
- Win10
- MATLAB R2017b
参考网址
这是我参考的百度知道上的原址:
[1]: https://zhidao.baidu.com/question/758123072792991764.html
这篇关于MATLAB实现三维温度场的动态显示问题:无法从 struct 转换为 double的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!