使用matlab对2020版CST导出的txt画图文件处理使之适用于origin画图 您所在的位置:网站首页 Cst模型导出图片 使用matlab对2020版CST导出的txt画图文件处理使之适用于origin画图

使用matlab对2020版CST导出的txt画图文件处理使之适用于origin画图

2024-06-18 12:51| 来源: 网络整理| 查看: 265

所要解决的问题描述

cst仿真完成后,在originlab中导入从cst导出的画图txt文件,会导致不同的曲线被识别为同一条曲线。 导出plottxt 直接导入CST导出结果

显然这样的图表与我们的报告论文中的绘图要求不符,而分别导出每一条曲线的操作导出又过于繁琐。简化这一过程最直接的方法是通过联合仿真解决(我一就是这样做的),直接使用python的matplotlib进行绘图。联合仿真方法cst的帮助文档中有详尽描述。 但是由于word中插入originlab对象具有可编辑的功能,所以你的导师可能会要求你使用originlab。这就需要对cst导出的画图文件进行处理。 我们使用matlab对cst导出的txt文件进行处理。 下面展示用于处理的 matlab代码。PS. 我用的matlab版本为2021a。

filename = 'FSR.txt'; %CST导出的绘图文件的文件名 atext = readlines(filename); %读入文件 sa = atext; index = find(atext==''); % 使用空白行分隔曲线,首先获取空白行的索引 atext(index(length(index)))=[]; % 去除最后一行空白行 ctext = []; length1 = index(2)-index(1)+3; for i = length(index)-1:-1:2 disp(i); temp = []; if (index(i)-index(i-1)) ~= length1 counter = index(i)-index(i-1); for j = 1:abs(length1-(index(i)-index(i-1))) temp = [temp;atext(index(i)-1)]; disp(temp) end end ctext = [ctext,[atext(index(i-1):index(i)-1);temp]]; end %提取从第二条曲线开始的曲线并按列排列。 temp = []; for i = 1:3 temp = [temp;atext(index(1)-1)]; end ctext = [ctext,['';atext(1:index(1)-1);temp]];%加入第一条曲线 ctext(1,:) = []; ctext(2,:) = []; h = size(ctext); ctext(h(1),:) = []; btext = regexp(ctext, '\s{3,}', 'split'); mc = vertcat(btext{:}); mc2 = reshape(mc,length1-3,[]); mc3 = mc2(:,h(2)*2:h(2)*3); mc3 = [mc3(:,1) , mc3(:,end:-1:2)];%由于reshape的时候进行了倒序,因而这里也倒序恢复它本来的顺序 writematrix(mc3,'plot.xls');%写入excel表格

进行处理后将程序生成的xls文件导入originlab中进行画图。结果如下所示 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有