matlab数据读入,有关数据读入matlab

有关数据读入matlab

录入:edatop.com     点击:

hfss方法CST前些日子在论坛见不少人都对读入数据有些迷茫

cst、hfss的数据基本格式是描述性语言+数据的格式

下面是一个cst的数据输出

Frequency / GHz        SZmin(1),Zmin(1)/abs,linear

-----------------------------------------------------------------

5                           0.4557996

5.029                           0.4553181

5.058                           0.4547905

5.087                           0.4542164

5.116                           0.4535954

5.145                           0.452927

5.174                           0.4522107

5.203                           0.4514461

但是matlab没有这么高的领悟了,不会自己读数据

方案不少说一说常用的。

1自己手动删除

Frequency / GHz        SZmin(1),Zmin(1)/abs,linear

-----------------------------------------------------------------

然后使用

load (文件名).txt

不错的方法,如果你文件名是纯数字的,比如是24,在matlab的workspace中会有一个X24的数组。

下面对x24处理就是了。

2一些人比较懒,不愿意删东西

可以这样:

[f,tr]=textread('24.txt','%f%f',2);

先到上面在看一下cst的数据结构,这里的2 是说从第3行开始读数。

如果你的数据是大于两列的,有几列,在[a1,a2,a3……]就是几个向量,同时,"%f%f……"中的%f的个数和前面的列向量的个数相同。

3有些时候仪器的输出比较牛,我们的古董级别的失网的输出是csv格式的带编码的数据。

# Version 1.00

#

freq[Hz];re:Trc1_b2d1sam[V];im:Trc1_b2d1sam[V];

1.700000000000000E+011;7.317389423714706E-003;-3.586198237922638E-003;

1.701500000000000E+011;-8.718488268764849E-003;5.495278251522440E-003;

1.703000000000000E+011;-1.050072140670953E-002;3.472822925688487E-003;

可以这么处理

fid=fopen('C:Documents and SettingsAdministratorMy Documents58.csv','r');% open file

i=0;

while 1                                                       %get the length of the data

tline = fgetl(fid);

if ischar(tline),   break,   end

i=i+1;

end

fclose(fid);                                              %the array can't go back, when it get the bottom of the file. so open the file again

fid=fopen('C:Documents and SettingsAdministratorMy Documents58.csv','r');

temp=fgetl(fid);                                        % due to the structure of the data, first three line is useless.

temp=fgetl(fid);

temp=fgetl(fid);

for j=1:1:i-3                                               %read the data

temp=fgetl(fid);

a=strrep(temp,';',' ');                               % use the 'table' to replace ';'

[b,c]=strtok(a);

[e,f]=strtok(c);

data(j,1)=str2double(b);

data(j,2)=str2double(e);

data(j,3)=str2double(f);

end

4事实上,我们的数据量比较大,可以一次打开多个文件

clc

close all

clear all

t1=27;

t2=30;

for t=t1:1:t2

f=strcat(num2str(t),'.cvs');

g='C:Documents and SettingsAdministratorMy Documents 4.13';

fid=fopen(strcat(g,f),'r+');

t1,t2可以自己指定。因为实验数据是要测60次取均值的,导师一直是这么要求的。如果让你删60个文件的说明的话,会发疯的。

5上面的这些都是对不会使用dos的人写的

如果你会使dos,十分简单,写一个批处理文件,在matlab的m文件的一开始执行一下

Frequency / GHz        SZmin(1),Zmin(1)/abs,linear

-----------------------------------------------------------------

5                           0.4557996

5.029                           0.4553181

5.058                           0.4547905

马上全部变成

5                           0.4557996

5.029                           0.4553181

5.058                           0.4547905

现在我们的实验室都是在用批处理的方式来写的,因为数据太多了。。。。

先写到这里了,希望对大家数据处理有帮助。

不错,多谢楼主奉献

貌似用matlab直接处理不是那么简单,lz的第二个方法好像不行

可以的啊,在我的机器运行的很正常。要不你把数据给我,我帮你写一个m文件?

谢谢了!!!!

申明:网友回复良莠不齐,仅供参考。如需专业解答,请学习易迪拓培训专家讲授的CST视频培训教程。

·导出2d数据(2014-02-24)

·CST数据导出问题(2014-03-21)

·CST MWS图形数据导出(2014-03-21)

·CST如何实现按角度扫描?(2014-03-21)

·CST数据导出(2014-03-24)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值