在Matlab中绘制Comsol导出的云图数据并导出为图片

  |   0 评论   |   108 浏览

直接上代码

 1% 读数据,跳过前8行(comsol导出的数据默认有8行注释)
 2dat = readmatrix('d:\Untitled.txt', 'NumHeaderLines', 8);
 3
 4% comsol默认输出的数据格式为 每行 -- x y 值
 5x = dat(:, 1);
 6y = dat(:, 2);
 7v = dat(:, 3);
 8
 9% 最终画图时用的x坐标和y坐标
10[xq, yq] = meshgrid(-150:.2:150, -35:.2:35);
11
12% 将comsol输出的数据插值到均匀网格
13vq = griddata(x, y, v, xq, yq);
14
15% 绘制
16surface(xq, yq, vq,'EdgeColor','none');
17
18% 颜色映射
19% colormap(waveclassic());
20
21% y轴范围
22ylim([-35 35]);
23
24% 使色彩轴对称
25rng = max(abs(vq), [], "all");
26caxis([-rng rng]);
27
28% 绘制色卡
29colorbar;
30
31% 图的宽度(像素)
32figureWidth = 1200;
33% 图的高宽比
34figureHeightRatio = 35/150;
35
36% 设置绘图窗口的位置和大小,不需要调整
37fig = gcf;
38scnsize = get(0,'ScreenSize');
39figureHeight = figureWidth*figureHeightRatio;
40figx = (scnsize(3) - figureWidth) / 2;
41figy = (scnsize(4) - figureHeight) / 2 - 50;
42fig.Position = [figx figy figureWidth figureWidth*figureHeightRatio];
43
44% 设置坐标区域的位置和大小,根据需要调整,注意position的最后两个数字要一致
45ax = gca;
46ax.Position = [0.07 0.12 0.8 0.8];
47ax.Color = 'none';
48
49% 调节坐标轴的字体
50ax.FontName = 'Times New Roman';
51ax.FontSize = 12;
52
53% 导出图片
54exportgraphics(fig, 'aaa.tif', 'Resolution', 300);

常用的comsol颜色映射(如文中的waveclassic)可以到这里下载


标题:在Matlab中绘制Comsol导出的云图数据并导出为图片
作者:joyqat
地址:https://joyqat.top/articles/2022/09/20/1663665453944.html

评论

发表评论


取消