最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

MATLAB 数据导入

来源:动视网 责编:小OO 时间:2025-09-29 18:27:34
文档

MATLAB 数据导入

一将excel数据导入 直接将下面三句话导入[filename,pathname]=uigetfile('*.xls');   %寻找源文件file=[pathnamefilename];                   %赋名x=xlsread(file);                            %格式转换为矩阵之后就用x来代表导入的这个矩阵。如excel里输入了123                 456如下命令x(1,:)ans=     1     2     3
推荐度:
导读一将excel数据导入 直接将下面三句话导入[filename,pathname]=uigetfile('*.xls');   %寻找源文件file=[pathnamefilename];                   %赋名x=xlsread(file);                            %格式转换为矩阵之后就用x来代表导入的这个矩阵。如excel里输入了123                 456如下命令x(1,:)ans=     1     2     3
一 将excel数据导入

 

直接将下面三句话导入

[filename, pathname]= uigetfile('*.xls');    %寻找源文件

file=[pathname filename];                    %赋名

x=xlsread(file);                             %格式转换为矩阵

之后就用x来代表导入的这个矩阵。

如excel 里输入了 1 2 3

                  4 5 6

如下命令

x(1,:)

ans =

      1      2      3

二 txe文件导入

假定名为 test.txt 的文件中以下为文件内容

"

你好,我的数据

欢迎来到

动力学与控制技术论坛

www.dytrol.com

1 11 111 1111

2 22 222 2222

3 33 333 3333

4 44 444 4444

5 55 555 5555

"

这样的文件怎么读入数据呢?

方法有多种,现举两个比较简单实用的。

方法一:

在文件菜单中选择 file/import data,按照提示进行操作至结束。

在 command 窗口中输入

>> whos

Name            Size                    Bytes   Class

data            5x4                       160   double array

textdata        4x1                       300   cell array

Grand total is 54 elements using 460 bytes

>> data

data =

           1           11          111         1111

           2           22          222         2222

           3           33          333         3333

           4           44          444         4444

           5           55          555         5555

>> textdata

textdata =

    '你好'

    '欢迎来到'

    '动力学与控制技术论坛'

    'www.dytrol.com'

方法二:

[a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)

说明:%s可以是其他形式,跟读入的数据类型有关,比如这里也可以用%n,%f等。

这里%s的个数和[a1,a2,a3,a4]对应。

>> [a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)

a1 =

    '1'

    '2'

    '3'

    '4'

    '5'

a2 =

    '11'

    '22'

    '33'

    '44'

    '55'

a3 =

    '111'

    '222'

    '333'

    '444'

    '555'

a4 =

    '1111'

    '2222'

    '3333'

    '4444'

    '5555'

因以字符串的形式读入,所以有''。

文件内容形式二(假定文件名为test2.txt):

你好

1 11 111 1111

欢迎来到

2 22 222 2222

动力学与仿真控制论坛

3 33 333 3333

www.dytrol.com

4 44 444 4444

5 55 555 5555

说明:这种内容格式的文件用上面的方法是不行的。

以下是由chinamaker编写的一种方法:

fidin=fopen('test2.txt');                 % 打开test2.txt文件             

fidout=fopen('mkmatlab.txt','w');               % 创建MKMATLAB.txt文件

while ~feof(fidin)                              % 判断是否为文件末尾      

    tline=fgetl(fidin);                             % 从文件读行   

    if double(tline(1))>=48&&double(tline(1))<=57   % 判断首字符是否是数值

       fprintf(fidout,'%s\\n\\n',tline);   % 如果是数字行,把此行数据写入--

                                         %--文件MKMATLAB.txt

       continue                          % 如果是非数字继续下一次循环

    end

end

fclose(fidout);

MK=importdata('MKMATLAB.txt');       % 将生成的MKMATLAB.txt文件导入工作--

                                     %-空间,变量名为MK,实际上它不显示出来

>> MK

MK =

           1           11          111         1111

           2           22          222         2222

           3           33          333         3333

           4           44          444         4444

           5           55          555         5555

另外有一个小程序

数据文件处理小程序

程序作者:黄文宇博士整理:龚建伟在实验中,处理记录数据文件是经常要做的,而用Matlab来处理是我最推崇的,方便快捷,数据文件格式任意设置,均可处理,如用下面格式保存的数据文本data.txt,用Matlab来处理,用黄文宇博士这个小程序做来非常容易,而且处理后得到的图形可直接Copy到各种需要的文件中。

data.txt文件:

......

d+00005.00;v+00001.92;e+00003.08;u-0016;m+1004;t+0286;

d+00005.00;v+00002.06;e+00002.94;u-0041;m+0988;t+0287;

d+00005.00;v+00002.19;e+00002.81;u-0040;m+0947;t+0288;

d+00005.00;v+00002.31;e+00002.69;u-0033;m+0907;t+02;

d+00005.00;v+00002.39;e+00002.61;u-0024;m+0874;t+0290;

d+00005.00;v+00002.47;e+00002.53;u-0024;m+0850;t+0291;

d+00005.00;v+00002.56;e+00002.44;u-0025;m+0826;t+0292;

d+00005.00;v+00002.61;e+00002.39;u-0016;m+0801;t+0293;

d+00005.00;v+00002.69;e+00002.31;u-0024;m+0785;t+0294;

d+00005.00;v+00002.72;e+00002.28;u-0007;m+0761;t+0295;

.....

 处理函数readprocess

function readprocess(file)

fid=fopen(file,'rt');

if(fid==-1)

display('File not exist!');

return;

end

array=[];

while(~feof(fid))

str=fscanf(fid,'%s',1);

if(length(str)>10)

%d+00005.00;v+00002.72;e+00002.28;u-0007;m+0761;t+0295;

col=sscanf(str,'d%f;v%f;e%f;u%f;m%d;t%d;');

array=[array col];

end

end

fclose(fid);

dhead=array(1,:);

head=array(2,:);

'r:',t,head,'b-');

运行环境,Matlab5X

使用方法:readprocess data.txt

三. 后记

如果很规整的txt数据,直接import导入是很方便的。

如果格式不是很规范的话要注意指定header lines 的行数。

前几行的text data 是按照单元数组的格式存储的,调用的时候用

textdata{i,j} 这种语句,可能有些初学者会忽视这一点。

另外 对于读入的textdata, 每一行的文字,字母都会按照一个字符串的格式读入。空行也会被导入。

而data以矩阵形式导入数据,忽略空行, 空格多少无影像。

建议先建一个简单的txt文件反复导入不同格式的数据以掌握其用法

文档

MATLAB 数据导入

一将excel数据导入 直接将下面三句话导入[filename,pathname]=uigetfile('*.xls');   %寻找源文件file=[pathnamefilename];                   %赋名x=xlsread(file);                            %格式转换为矩阵之后就用x来代表导入的这个矩阵。如excel里输入了123                 456如下命令x(1,:)ans=     1     2     3
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top